Python 列表推导式

一、列表推导式语法:

[每一个元素或者是和元素相关的操作 for 元素 in 可迭代数据类型]       #遍历之后挨个处理

[满足条件的元素相关的操作 for 元素 in 可迭代数据类型 if 元素相关的条件]   #筛选功能

二、实例:

'''
列表推导式练习题:

例1: 过滤掉长度小于3的字符串列表,并将剩下的转换成大写字母

例2: 求(x,y)其中x是0-5之间的偶数,y是0-5之间的奇数组成的元祖列表

例3: 求M中3,6,9组成的列表M = [[1,2,3],[4,5,6],[7,8,9]]
'''
1、
str_list = ['adfv','aDFGFGAdsd','sgwSF','sd','a','ASFG']
print([new_list.upper() for new_list in str_list if len(new_list)>=3])

2print([(x,y) for x in range(6) if x%2==0  for y in range(6) if y%2==1])

3、
M = [[1,2,3],[4,5,6],[7,8,9]]

print([row[2] for row in M ])
列表推导式

例:找到嵌套列表中名字含有两个‘e’的所有名字

names = [['Tom', 'Billy', 'Jefferson', 'Andrew', 'Wesley', 'Steven', 'Joe'],
         ['Alice', 'Jill', 'Ana', 'Wendy', 'Jennifer', 'Sherry', 'Eva']]

print([name for lst in names for name in lst if name.count('e') >= 2])  # 注意遍历顺序,这是实现的关键
嵌套列表推导式

其他各种推导式

字典推导式

例一:将一个字典的key和value对调

mcase = {'a': 10, 'b': 34}
mcase_frequency = {mcase[k]: k for k in mcase}
print(mcase_frequency)
将字典的key和value对调

例二:合并大小写对应的value值,将k统一成小写

mcase = {'a': 10, 'b': 34, 'A': 7, 'Z': 3}
mcase_frequency = {k.lower(): mcase.get(k.lower(), 0) + mcase.get(k.upper(), 0) for k in mcase.keys()}
print(mcase_frequency)
View Code

集合推导式

例:计算列表中每个值的平方,自带去重功能

squared = {x**2 for x in [1, -1, 2]}
print(squared)
# Output: set([1, 4])
View Code

猜你喜欢

转载自www.cnblogs.com/hubangsheng/p/10101392.html