map()

_map(function, iterable),_function需要传入一个函数,可以是内置、自定义、匿名函数,iterable是可迭代对象
map函数返回一个map对象,可for遍历迭代查看对象;或者list转为列表。

  1. list_results = [1, 2, 3]
  2. print(list(map(lambda x: x + 1, list_results))) # [2, 3, 4]
  1. # 集中处理字符串开头和结尾的换行符和空格
  2. S = [
  3. 'I like Python\r',
  4. '\t\n Python make me happy \n',
  5. ' without python, without living.'
  6. ]
  7. print(list(map(lambda x: x.strip(), S))) #['I like Python', 'Python make me happy', 'without python, without living.']
  1. # map可接受多个可迭代对象作为参数传递
  2. l1 = [1, 2, 3, 4]
  3. l2 = [1, 2, 3]
  4. print("多个可迭代对象作为参数传递{}".format(list(map(lambda x, y: x + y, l1, l2)))) #多个可迭代对象作为参数传递[2, 4, 6]

reduce()

reduce()可用于对迭代对象中的元素进行累积操作,reduce(function: (_T, _T) ,
sequence: Iterable[_T])

  1. from functools import reduce
  2. L = [1, 2, 3, 4]
  3. print(reduce(lambda x, y: x + y, L)) #10

filter()

用于过滤筛选可迭代对象中的元素,如果条件符合则返回对应的元素序列(filter类型)

  1. L = [1, 2, 3, 4, 5]
  2. print(list(filter(lambda x: x > 1, L))) # [2, 3, 4, 5]

eval()

返回传入字符串的表达式的结果
eval(expression[, globals[, locals]])
globals:全局变量,如果被提供,只能是字典
locals:局部变量,如果被提供,可以是任何可映射对象

  1. # 字符串与列表、集合、字典的转换
  2. list_info = '["a", "b", "c"]'
  3. set_info = "(1, 3, 4)"
  4. dict_info = '{"a":a, "b":2, "c":c}'
  5. c = 4
  6. print(eval(dict_info, {"a":2}, locals())) # {'a': 2, 'b': 2, 'c': 4}

参考:https://zhuanlan.zhihu.com/p/66165900