python笔记(各种推导)

生成器表达式和列表推导式
1.列表推导式

`egg_list = ['小龙龙`%s'%i for i in range(10)]
print(egg_list)

输出结果:

[‘小龙龙0’, ‘小龙龙1’, ‘小龙龙2’, ‘小龙龙3’, ‘小龙龙4’, ‘小龙龙5’, ‘小龙龙6’, ‘小龙龙7’, ‘小龙龙8’, ‘小龙龙9’]

2.生成器表达式(和列表推导式的不同:(1)括号不一样(2)返回值不一样–几乎不占内存 )

g = (i for i in range(3))
print(g)
for i in g:
    print(i)

输出结果:

<generator object at 0x0000019AA81A0938>
0
1
2

3.各种推导式
[每一个元素或者是和元素相关的操作 for 元素 in 可送代数据类型] : 遍历之后挨个处理
[满足条件的元素相关的操作 for 元素 in 可送代数据类型 if 元素相关的条件] : 筛选功能

30以内所有能被3整除的数
ret = [i for i in range(30) if i%3 == 0]
print(ret)
输出结果:

[0, 3, 6, 9, 12, 15, 18, 21, 24, 27]

4.列表嵌套式
找到嵌套列表中名字含有两个e的所有名字

names= [['Tom','Billy','Jefferson','Andrew','Wesley','Steven','Joe'],['lTAlice','Jill',' Ana','Wendy', 'Jennifer','Sherry','Eva']]
ret = [name for lst in names for name in lst if name.count('e') == 2]
print(ret)

输出结果:

[‘Jefferson’, ‘Wesley’, ‘Steven’, ‘Jennifer’]

5.字典推导式
例二:合并大小写对应的va1ue值,将keys统一成小写

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)

输出结果:

{‘a’: 17, ‘b’: 34, ‘z’: 3}

6.集合推导式
求列表中元素的平方,并去重

squared = {x**2 for x in [-1,1,2]}
print(squared)

输出结果:

{1, 4}

猜你喜欢

转载自blog.csdn.net/qq_41433183/article/details/83540072