列表推导式&集合推导式&字典推导式

1 列表推导式

旧列表 ------> 新列表
格式:[表达式 for 变量 in 旧列表] 或 [表达式 for 变量 in 旧列表 if 条件]

例子:
1 # 例子:过滤掉长度小于等于3的人名
2 names = ['lily', 'tom', 'bob', 'steven', 'james', 'ha']
3 result = [name for name in names if len(name) > 3]
4 print(result)
5 
6 
7 # 每个单词的首字母大写
8 result1 = [name.capitalize() for name in names if len(name)>3]
9 print(result1)

1 # 生成(偶数,奇数)对
2 # 0~5偶数,0~10奇数
3 # 两层for循环
4 
5 newlist = [(x, y) for x in range(5) if x % 2 == 0 for y in range(10) if y % 2!= 0]
6 print(newlist)

 

 2.集合推导式

和列表推导式类似,添加了去重的功能

# 集合推导式 {},并且可以去重
list1 = [1, 3, 4, 2, 5, 2, 1, 8, 9, 7, 8, 9]
set1 = {x+1 for x in list1 if x > 5}
print(set1)

3.字典推导式

# 字典推导式
# 例子:将字典的键值互换,当键相同,值不同时,用后面的值覆盖前面的;生成新字典时,也要用冒号的形式,成对的出现
dict1 = {'a': 'A', 'b': 'B', 'c': 'C', 'd': 'C'}
newdict = {value: key for key, value in dict1.items()}
print(newdict)

原文地址:https://www.cnblogs.com/GumpYan/p/12346284.html