一、字典生成式:
# keys=['name', 'age', 'gender']
# dic={key:None for key in keys}
# print(dic)
items=[('name', 'Tom'), ('age', 18), ('gender', 'male')]
res={k:v for k,v in items if k != 'gender'}
print(res)
二、集合生成式:
keys=['name', 'age', 'gender'] set1={key for key in keys} print(set1, type(set1))
三、元组生成式:(没有)!
tr_1=(i for i in range(10)if i >5)
print(tr_1,type(tr_1))
结果:<generator object <genexpr> at 0x000002063E6C97D0> <class 'generator'>
这段代码之所以不能直接输出 (6, 7, 8, 9)
,是因为 tr_1
是一个生成器对象,而不是一个列表或其他可以直接打印出所有元素的数据结构。生成器对象是惰性求值的,这意味着它们不会立即计算所有值,而是在迭代时才逐个产生值。