1、列表推导式
公式:[ 变量(加工后的变量) for 变量i in 可迭代的数据类型 ]
#例一:求10以内所有的整数(不包括0) list1 = [i for i in range(1,11)] print(list1) #输出结果 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] #例二:30以内所有能被3整除的数 list2 = [i for i in range(30) if i % 3 == 0] print(list2) #输出结果 [0, 3, 6, 9, 12, 15, 18, 21, 24, 27] # 例三:找到嵌套列表中名字含有两个‘e’的所有名字 names = [['Tom', 'Billy', 'Jefferson', 'Andrew', 'Wesley', 'Steven', 'Joe'], ['Alice', 'Jill', 'Ana', 'Wendy', 'Jennifer', 'Sherry', 'Eva']] list3 = [name for lst in names for name in lst if name.count('e') >= 2] print(list3) # 注意遍历顺序,这是实现的关键 #输出结果 ['Jefferson', 'Wesley', 'Steven', 'Jennifer']
2、字典的推导式
# 例:将一个字典的key和value对调 dict1 = {'a': 10, 'b': 20, 'c': 30, 'd': 40} swapDict = {dict1[k]: k for k in dict1} print(swapDict) #输出结果 {10: 'a', 20: 'b', 30: 'c', 40: 'd'}
3、集合推导式
squared = {x**2 for x in [1, -1, 2]} print(squared) #输出结果 {1, 4}