python-14 推导式

列表 字典 集合有推导式

列表推导式
用一个表达式创建or控制一个有规律的列表

list1 = []
i = 0
while i < 10:
    list1.append(i)
    i += 1

print(list1)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

list1 = []
for i in range(10):
    list1.append(i)
    i += 1

print(list1)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

#列表推导式
list1 = [i for i in range(10)]
print(list1) #[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]






用if控制

list1 = [i for i in range(0,10,2)]
print(list1) #[0, 2, 4, 6, 8]

list1 = [i for i in range(10) if i%2 == 0]
print(list1) #[0, 2, 4, 6, 8]

多个for实现列表推导式
需求:创建一个这个
[[(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]

list1 = [(i,j) for i in range(1,3) for j in range(3)]
print(list1) 

字典推导式
快速合并利润表为字典或提取字典中的目标数据

创建一个字典:字典key是1-5,value是key的平方

dict = {
    
    i: i**2 for i in range(1,5)}
print(dict)
#{1: 1, 2: 4, 3: 9, 4: 16}

将两个列表合并为一个字典
若两个列表len不一样,len统计多的那个会报错

list1 = ['name','age','gender']
list2 = ['Tom','20','man']

dict = {
    
    list1[i]:list2[i] for i in range(len(list1))}
print(dict)
#{'name': 'Tom', 'age': '20', 'gender': 'man'}

提取字典目标数据
提取傻瓜书电脑数量大于等于200的字典数据

counts = {
    
    'MBP':268,'HP':125,'DELL':201,'LENOVO':199}
count1 = {
    
    key:value for key,value in counts.items() if value >= 200}
print(count1)
#{'MBP': 268, 'DELL': 201}

集合推导式
去重

list1 = [1,1,2]
set = {
    
    i**2 for i in list1}
print(set)
#{1, 4}

猜你喜欢

转载自blog.csdn.net/fly_ship/article/details/115103483
今日推荐