python 推导式

关于推导式的笔记

这个推导式

list0 = [i for i in range (10)]
print(list0)

相当于

list1=[]
for i in range(10):
    list1.extend([i])
print()

可以看出推导式可以减少代码量不愧是人生苦短

  • 除了这种最基础的推导式,还有可以把if加进去的:
list0 = [i for i in range (0,99) if i//3 == 1]
print(list0)

相当于

list1=[]
for i in range(10):
    if i // 3 == 1:
        list1.extend([i])
print(list1)
  • 甚至是循环嵌套加判断的推导式:
list0 = [[i,j] for i in range (0,99) if i//3 == 1 for j in range(12) if j%3 != 0]
print(list0)

相当于

list1=[]
for i in range(10):
    if i // 3 == 1:
        for j in range(12):
            if j % 3 != 0:
                list1.append([i,j])
print(list1)

以下是字典推导式:

key = [1,2,3,4,5,6]		#将两个列表合并成一个字典
value = ['a','b','c','d','e','f','g']

dict1 = {key[i]:value[i] for i in range(len(key))}#按元素少的列表取值,否则会报错
print(dict1)

key = [1,2,3,4,5,6]
value = ['a','b','c','d','e','f','g']

dict2 = {}
for i in range(len(key)):
    dict2[key[i]] = value[i]
print(dict2)

我认为推导式优势很明显:

  • 减少代码量
  • 不用担心又漏掉冒号

缺点(目前已知的)是:

  • 推导式中的变量(即上述代码中用到的i,j)不是全局变量,意思是无法在其它语句中使用。
  • 推导式仅 列表/字典/集合 才可以使用。
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值