vec2 = [1,2,3]
[x*y for x in vec for y in vec2] >>>[2,4,6,4,8,12,6,12,18]
嵌套列表推导式:
mat = [
[1,2,3],
[4,5,6],
[7,8,9]
]
print ([[row[i] for row in mat] for i in [0,1,2]])
>>>[[1, 4, 7], [2, 5, 8], [3, 6, 9]]
思考:list (zip(mat)) 和 list (zip(*mat))结果会有什么不同
2.元组
空元组:t = ()
元组赋值: t = (123,345)
t[0] >>>123
3.字典
d = {'Jack':'jack@mail.com','Tom':'Tom@main.com'}
d['Jack'] >>>'jack@mail.com
d['Jim'] = 'Jim@sin.com' >>>{'Jim': 'Jim@sin.com', 'Jack': 'jack@mail.com', 'Tom': 'Tom@main.com'}
del d['Jim'] >>>{'Jack': 'jack@mail.com', 'Tom': 'Tom@main.com'}
list(d.keys()) #将返回一个字典中所有关键字组成的无序列表
sorted(d.keys()) #将返回一个字典中所有关键字组成的排序列表
dict() #构造函数可以直接从key-value对中创建字典
dict([('Tim',123),('Tiny',234)]) >>>{'Tiny': 234, 'Tim': 123}
推导式创建字典:
{d2:d2+'@main.com' for d2 in list(d.keys())}
>>>{'Jack': 'Jack@main.com', 'Tom': 'Tom@main.com'}
练习:循环输出字典中的键值对:
for name,email in d.items():
print(name,email)
4.集合
空集合:A = set() ※想要创建空集合,必须使用set()
演示:
basket = {'apple','orange','apple'} >>>{'orange', 'apple'} #注意重复的元素只显示一个
'apple' in basket >>>True
'pear' in basket >>>False










