侧边栏壁纸
  • 累计撰写 123 篇文章
  • 累计创建 27 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

列表推导式

梁来福
2022-02-11 / 0 评论 / 0 点赞 / 0 阅读 / 2840 字
温馨提示:
本文最后更新于 2024-05-06,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

列表推导式

作用:用一个表达式创建一个有规律的列表或控制一个有规律列表

列表推导式又叫列表生成式

需求:创建一个0-10的列表

while循环实现
list = []
i = 0
while i < 10:
    list.append(i)
    i += 1
print(list)

输出:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

for循环实现
list = []
for i in range(10):
    list.append(i)
print(list)

输出:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

列表推导式实现
list = [ i for i in range(10) ]
print(list)

输出:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]


带if的列表推导式

需求:创建0-10的偶数列表

range步长实现
list = [ i for i in range(0, 10, 2) ]
print(list)

输出:[0, 2, 4, 6, 8]

for循环+if实现
list1 = []
for i in range(10):
    if i % 2 ==0:
        list1.append(i)
print(list1)

输出:[0, 2, 4, 6, 8]

带if的列表推导式实现
list3 = [i for i in range(10) if i % 2 ==0]
print(list3)

输出:[0, 2, 4, 6, 8]


多个for循环实现列表推导式

需求:创建列表如下:

[(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]

for嵌套实现
list = []
for i in range(1, 3):
    for j in range(3):
        list.append((i, j))
print(list)

输出:[(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]

多个for循环实现列表推导式
list1 = [(i, j) for i in range(1, 3) for j in range(3)]
print(list1)

输出:[(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]


字典推导式

需求:创建一个字典,key是1-5数字,value是这个数字的2次方

dic1 = {i: i **2 for i in range(1,5)}
print(dic1)

输出:{1: 1, 2: 4, 3: 9, 4: 16}

需求:将下列两个列表合并为一个字典

list1 = ['name', 'age', 'gender', 'id']

list2 = ['Lianglaifu', '1.5', '男']

list1 = ['name', 'age', 'gender']
list2 = ['Lianglaifu', '1.5', '男']

dict1 = {list1[i]: list2[i] for i in range(len(list2))}
print(dict1)

输出:{'name': 'Lianglaifu', 'age': '1.5', 'gender': '男'}

总结

如果两个列表数据个数相同,len统计任何一个列表长度都可以

如果两个列表数据个数不同,len统计数据多的列表个数会报错,需要统计数据少的列表数据

提取字典中目标数据

需求:提取下述电脑中销售数量大于300的数据

counts = {'MBP': 999, 'HP': 199, 'DELL': 299, 'Lenovo':399}

counts = {'MBP': 999, 'HP': 199, 'DELL': 299, 'Lenovo':399}

cout1 = {key: value for key,value in counts.items() if value>=300}
print(cout1)

输出:{'MBP': 999, 'Lenovo': 399}


集合推导式

需求:创建一个集合,数据为下列列表的2次方

list1 = [1, 1, 2]

list1 = [1, 1, 2]

set1 = {i ** 2 for i in list1}
print(set1)

输出:{1, 4}

注意:集合有数据去重功能

0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin
博主关闭了所有页面的评论