标签:value 结果 生成器 字典 tor 集合推导式 object 集合 for
1、生成器表达式 (i for i in range(10))
返回一个生成器
exp1:
g = (i for i in range(10))
print(g)
执行结果:
<generator object <genexpr> at 0x00000000020A4F48>
for i in g:
print(i)
生成器表达式和列表推导式区别:
1.括号不一样,生成器表达式为括号(),列表推导式为中括号[]
2.返回的值不一样,生成器表达式返回 一个生成器 生成器节省内存 列表表达式 返回列表所有结果,
老母鸡 = (‘鸡蛋%s‘%i for i in range(10) )
print(老母鸡)
for 鸡蛋 in 老母鸡:
print(鸡蛋)
10以内的数字的平方
square = ( i**2 for i in range(10))
for num in square:
print(num)
2、列表推导式 [i for i in range(10)]
[每一个元素或者是和元素相关的操作 for i in 可迭代数据]
[ 满足条件的元素相关的操作 for 元素 in 可迭代数据类型 if 元素相关的条件] 筛选元素
egg_list = []
for i in range(10):
egg_list.append(‘鸡蛋%s‘%i)
print(egg_list)
执行结果:
[‘鸡蛋0‘, ‘鸡蛋1‘, ‘鸡蛋2‘, ‘鸡蛋3‘, ‘鸡蛋4‘, ‘鸡蛋5‘, ‘鸡蛋6‘, ‘鸡蛋7‘, ‘鸡蛋8‘, ‘鸡蛋9‘]
列表推导式
egg_list = [ ‘鸡蛋%s‘%i for i in range(10) ]
print(egg_list)
执行结果:
[‘鸡蛋0‘, ‘鸡蛋1‘, ‘鸡蛋2‘, ‘鸡蛋3‘, ‘鸡蛋4‘, ‘鸡蛋5‘, ‘鸡蛋6‘, ‘鸡蛋7‘, ‘鸡蛋8‘, ‘鸡蛋9‘]
列表推导式:[ i for i in range(10) ]
exp:找到嵌套列表中名字含有两个‘e’的所有名字
names = [[‘Tom‘, ‘Billy‘, ‘Jefferson‘, ‘Andrew‘, ‘Wesley‘, ‘Steven‘, ‘Joe‘],
[‘Alice‘, ‘Jill‘, ‘Ana‘, ‘Wendy‘, ‘Jennifer‘, ‘Sherry‘, ‘Eva‘]]
print([name for name_lst in names for name in name_lst if name.count(‘e‘) == 2])
执行结果:
[‘Jefferson‘, ‘Wesley‘, ‘Steven‘, ‘Jennifer‘]
exp:
30以内所有能被3整除的数
[i for i in range(1,30) if i % 3 == 0]
g = ( i for i in range(1,30) if i % 3 == 0)
for i in g:
print(i)
3、字典推导式
例一:将一个字典的key和value对调
mcase = {‘a‘: 10, ‘b‘: 34}
mcase_frequency = {mcase[k]: k for k in mcase}
print(mcase_frequency)
{10: ‘a‘, 34: ‘b‘}
exp2:合并大小写对应的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)
{‘a‘: 17, ‘b‘: 34, ‘z‘: 3}
4、集合推导式
squared = {x**2 for x in [1, -1, 2]}
print(squared)
{1, 4}
标签:value 结果 生成器 字典 tor 集合推导式 object 集合 for
原文地址:https://www.cnblogs.com/Felix-DoubleKing/p/9809871.html