栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python列表推导式

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python列表推导式

python列表推导式使用

在之前的测试工作中,会遇到一些将一个列表进行拆分生成一个新的列表,代码容易变得杂乱,我们可以用列表推导时来进行优化。首先来看下列表推导式语法:

out_list = [out_express for out_express in input_list if out_express_condition]
list_1 = []
    for i in range(5):
        list_1.append(i ** 2)
    print(list_1)
    
>>> [0, 1, 4, 9, 16]

可以将以上代码使用列表推导式实现,可使代码变得简洁,美观,由原来的的4行,变成为1行。

list_2 = [x ** 2 for x in range(5)]

>>> [0, 1, 4, 9, 16]

在以上栗子中加入条件,过滤愿列表中的奇数。

# 常规方法实现:
list_1 = []
    for i in range(5):
        if i % 2 == 0:
            list_1.append(i ** 2)
    print(list_1)

>>> [0, 2, 4]
# 列表推导式实现
list_3 = [x for x in range(5) if x % 2 == 0]

>>> [0, 2, 4]

多个列表:

list_4 = [(e, f * f) for e in range(3) for f in range(5, 15, 5)]

>>> [(0, 25), (0, 100), (1, 25), (1, 100), (2, 25), (2, 100)]

在工作中遇到一个问题,查询所有车辆,并判断是否可用,然后将可用的车辆生成新的list数据提供随机选择,此时就可以采用列表推导式加上if条件进行判断即可。

req = requests.post(url=url, headers=headers, json=data)
vehicle_list = [result['vehicleframeNo'] for result in req.json()['data']['results'] if
                result['salesStatus'] == '未预定' and len(result['vehicleframeNo']) <= 20]
vehicle = random.choice(vehicle_list)

说实话,在以前写代码或看代码时,总会有意无意的避开列表推导式,觉得可读性太难了,一不小心就会绕晕,所以就没要注意这方面问题,导致编码能力原地踏步。我个人觉得列表推导式需要多去熟悉,多用。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/280440.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号