列表推导式

普通写法

# 生成一个数字序列
L = []
def my_func(x):
    return 2*x
for i in range(5):
    L.append(my_func(i))
L
#输出[0,2,4,6,8]

列表推导式

        可以利用列表推导式进行写法上的简化:[* for i in *]。其中,第一个`*`为映射函数,其输入为后面`i`指代的内容,第二个`*`表示迭代的对象,比如range(5)。

M=[2*i for i in range(5)]
#输出[0,2,4,6,8]

        这种方式在别的内置数组类型中也适用,此时这种方式叫做生成器表达式

tuple(2*i for i in range(5))
#输出[0,2,4,6,8]

import array
array.array('I',(2*i for i in range(5)))
#输出为:array('I', [0, 2, 4, 6, 8])

        列表表达式还支持多层嵌套,如下面的例子中第一个`for`为外层循环,第二个为内层循环:

[m+'_'+n for m in ['a', 'b'] for n in ['c', 'd']]
#输出:['a_c', 'a_d', 'b_c', 'b_d']

三目运算符

        普通写法:

a, b = 'cat', 'dog'
condition = 2 > 1 # 此时为True
if condition:
    value = a
else:
    value = b
value
#输出:'cat'

     三目运算符写法:

value = 'cat' if 2>1 else 'dog'
value
#输出:'cat'

  列表生成式使用三目运算符

# 截断列表中超过5的元素,即超过5的用5代替,小于5的保留原来的值
L = [1, 2, 3, 4, 5, 6, 7]
L = [i if i <= 5 else 5 for i in L]
L
#输出:[1, 2, 3, 4, 5, 5, 5]
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值