列表 集合 字典 具有推导式 简化循环提取数据 和数据类型转换
列表推导式格式为例 [i for in range(10)]
分析 循环0-9的数都给i i的类型是列表 也可以多重循环 i代表输出后的格式数据
而且比较自由 推导式里可以写 多个 python简单表达式 不止for
列表推导式
list1=[]
i=0
while i<10:
list1.append(i)
i+=1
print(list1)
list2=[]
for x in range(10):
list2.append(x)
print(list2)
# 列表推导式
print([y for y in range(10)])
print([y for y in range(10) if y%2==0])
print([i for i in range(0,10,2)])
# [0, 2, 4, 6, 8]
# [0, 2, 4, 6, 8]
外里
list1=[(x,y) for x in range(3) for y in range(2)]
print(list1)
# [(0, 0), (0, 1), (1, 0), (1, 1), (2, 0), (2, 1)]
字典推导式
print({x:x*2 for x in range(1,5)})
#{1: 2, 2: 4, 3: 6, 4: 8}
多列表转换字典
list1 = ['name', 'age', 'gender']
list2 = ['Tom', 20, 'man']
print({list1[i]:list2[i] for i in range(len(list1))})
#{'name': 'Tom', 'age': 20, 'gender': 'man'}
提取字段中指定的数据
# 提取值大于200的字段数据
counts = {'MBP': 268, 'HP': 125, 'DELL': 201, 'Lenovo': 199, 'acer': 99}
print({k:v for (k,v) in counts.items() if v>200})
#{'MBP': 268, 'DELL': 201}
集合
list1 = [1, 1, 2]
print({x**2 for x in list1})
#{2, 4}