python知识点: 列表解析/字典解析/集合解析/生成器解析

list comprehension/dict comprehension/set comprehension/generator comprehension

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

list comprehension:

>>> [a+'-'+b for a in "ABC" for b in "DEF"]
['A-D', 'A-E', 'A-F', 'B-D', 'B-E', 'B-F', 'C-D', 'C-E', 'C-F']

dict comprehension:

交换字典的key和value

{'A': 'L', 'C': 'L', 'B': 'L'}
>>> dt = {'A':1,'B':2}
>>> {value:key for key,value in dt.items()}
{1: 'A', 2: 'B'}

发现的有意思的:

>>> {key:value for key in "ABC" for value in range(1,10)}
{'A': 9, 'C': 9, 'B': 9}
>>> {key:value for key in "ABC" for value in "JKL"}
{'A': 'L', 'C': 'L', 'B': 'L'}

用此方法生成字典,造成值都是一样的,这个需要注意

set comprehension:

>>> s = set([1,2,4])
>>> {i**i for i in s}
set([256, 1, 4])

generator comprehension:

>>> g = (a+2 for a in range(10))
>>> for gg in g:
...     print gg
... 
2
3
4
5
6
7
8
9
10
11
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值