重访 list comprehension

来源:互联网 发布:如何运行java web程序 编辑:程序博客网 时间:2024/05/22 17:47

数学的眼光

数学上,我们使用如下的表达式用于描述列表(或者集合,元组,以及向量等):

S = {x^2 : x in {0 ... 9}}V = (1, 2, 4, 8, ..., 2^12)M = {x | x in S and x even}
>>> S = [x**2 for x in range(0, 10)]>>> V = [2**i for i in range(13)]>>> M = [x for x in S if x%2==0]

效率与简洁

类list comprehension

[ … for …] ⇒ ( … for …)

>>> t = (x**2 for x in range(10))>>> t<generator object <genexpr> at 0x037EF170>

[ … for … ] ⇒ {k:v for k, v in …}

>>> t = [('InsideZhang', 24), ('LiXin', 24)]                        # 此时构成list的每一个元素必须长度为2                        # 否则长度为其他时,t[0]无法指派>>> { k:v for k, v in t}{'InsideZhang': 24, 'LiXin': 24}
for k, v in t                # 逐元素地取出,t[0], t[1] ...                # t[0][0]k                # t[0][1]v
0 0
原创粉丝点击