每天学点Python之comprehensions

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每天学点Python之comprehensions相关的知识,希望对你有一定的参考价值。

每天学点Python之comprehensions


推导式能够简化对数据的处理,让代码简洁的同一时候还具有非常高的可读性。这在Python中非经常见。

列表推导式

通过列表推导式能够对列表中的全部元素都进行统一的操作来获得一个全新的列表(原列表不发生变化),形式如[处理方式 for 元素 in 列表],当中的处理方式能够是不论什么操作:

>>> a=[1,2,3,4]
>>> [i*2 for i in a]
[2, 4, 6, 8]
>>> a
[1, 2, 3, 4]
>>> [(i*2,i+10) for i in a]
[(2, 11), (4, 12), (6, 13), (8, 14)]

能够通过加上if语句来过滤掉原列表中的一些元素:

>>> a=[1,2,3,4]
>>> [i*2 for i in a if i>2]
[6, 8]

字典推导式

我们能够通过推导式来创建一个字典,只是字典推导式的括号是花括号:

>>> a
[1, 2, 3, 4]
>>> { "str"+str(i):i for i in a }
{‘str3‘: 3, ‘str1‘: 1, ‘str4‘: 4, ‘str2‘: 2}

运用字典推导式有一个妙用,就是能够调换键和值的位置:

>>> a={‘one‘:1,"two":2,"three":3}
>>> {value:key for key,value in a.items()}
{1: ‘one‘, 2: ‘two‘, 3: ‘three‘}

注:确保值也是不可变类型,比如字符串、元组等

集合推导式

集合推导式与字典推导式相似。只是仅仅有一个值而不是键值对:

>>> a={1,2,3,4,5}
>>> {i**2 for i in a if i%2==1}
{1, 9, 25}

以上是关于每天学点Python之comprehensions的主要内容,如果未能解决你的问题,请参考以下文章

每天学点Python之bytes

每天学点Python之布尔类型

每天学点Python之set

每天学点linux之-mkdir和cd

每天学点python-入门

每天学点Python案例一:汇率换算