'''
格式:
[表达式 for 变量 in 旧列表] 或者 [表达式 for 变量 in 旧列表 if 条件]
''''''
举例:
将列表中元素长度大于3,并且将其首字母大写后输出
names = ['aaaa', 'dd', 'werr', 'xiaoxie', 'ff']
result = [name.capitalize() for name in names if len(name) > 3]
print(result) # 结果为:['Aaaa', 'Werr', 'Xiaoxie']
将1-100之间能被3整除并且能被5整除,组成一个新的列表
result = [i for i in range(1, 101) if i % 3 == 0 and i % 5 == 0]
print(result) # 结果为:[15, 30, 45, 60, 75, 90]
#0~5偶数,0~10奇数
#[(0,1),(0,3),(0,5),(0,7)...(2,1),(2,3)....]
result = [(x,y) for x in range(5) if x % 2 == 0 for y in range(10) if y % 2 != 0]
print(result)
#结果为:[(0, 1), (0, 3), (0, 5), (0, 7), (0, 9), (2, 1), (2, 3), (2, 5), (2, 7), (2, 9), (4, 1), (4, 3), (4, 5), (4, 7), (4, 9)]
''''''
还有一种格式:有 if...else...
[(if条件成立执行表达式) if 条件 else (if条件不成立执行表达式) for name in names]
'''
2. 集合推导式{}
'''
2. 集合推导式{}类似于列表推导式,在列表推导式的基础上添加了一个去除重复项
举例:
list1 = [1, 2, 3, 4, 5, 6, 3, 6, 4, 6, 9]
set1 = {x - 1 for x in list1 if x > 5}
print(set1) # 结果为:{8, 5}
'''
3.字典推导式
'''
3.字典推导式
dict1 = {'a': 'A', 'b': 'B', 'c': 'C', 'd': 'C'}
newdict = {value: key for key, value in dict1.items()}
print(newdict) # 结果为:{'A': 'a', 'B': 'b', 'C': 'd'},这里的最后一个覆盖掉前面一个,因为键值只能是一个。
'''