【[i for i in range(0,5) if i>2] - Python的for循环的另一种方式】

列表解析式

经常会看到类似于 [i for i in range(1,10)] 的表达式,这种表达式称为列表解析(List Comprehensions),类似的还有字典解析、集合解析等等。

列表解析式是将一个列表(实际上适用于任何可迭代对象)转换成另一个列表的工具。在转换过程中,可以指定元素必须符合一定的条件,才能添加至新的列表中,这样每个元素都可以按需要进行转换。

每个列表解析式都可以重写为 for 循环,但不是每个 for 循环都能重写为列表解析式,列表解析比 for 更精简,运行更快。
基本语法

[expression for iter_val in iterable]
[expression for iter_val in iterable if cond_expr]

列表解析式


# 列表解析式
a = [i for i in range(0,6) if i >2]
print(a)
# 普通方式
b = []
for i in range(0,6):
    if i > 2:
        b.append(i)

print(b)

在这里插入图片描述

字典解析式

# 普通方式
a = {'language1': 'python', 'language2': 'java', 'language3': 'c'}
b = {}
for key, value in a.items():
    if key == 'language1':
        b[key] = value

print(b)


# 字典解析式
a = {'language1':'python', 'language2':'java','language3':'c'}
b = {key: value for key, value in a.items() if key == 'language1'}
print(b)

在这里插入图片描述

集合解析式

# 普通方式
s = [1, 2, 3, 4, 5, 6, 7, 8, 9]
# 创建一个空集合
se = set()
print(type(se))
for i in s:
    if i > 5:
        se.add(i)
print(se)
# 集合解析式
s1 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
se1 ={i for i in s if i >5}
print(se1)

在这里插入图片描述
大家可以看到运用这两种for循环其实是一种效果,前者减少了很多代码量,而且在数据量打的时候速度也会非常快

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值