列表推导式&集合推导式&字典推导式
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)