Python_映射List

List 解析

Python 对 list 进行解析,它提供一种紧凑的方法,可以通过对 list 中的每个元素应用一个函数,从而将一个 list 映射为另一个 list。

>>> li = [1, 9, 8, 4]

>>> [elem*2 for elem in li]#对每个元素均执行如下操作:首先临时将其值赋给变量 elem,然后 Python 应用函数 elem*2 进行计算,最后将计算结果追加到要返回的 list 中。

[2, 18, 16, 8]

>>> li

[1, 9, 8, 4] #需要注意是,对 list 的解析并不改变原始的 list。

>>> li = [elem*2 for elem in li] 3

>>> li

[2, 18, 16, 8]

 

>>> li = ["1","2","3"]

>>> li

['1', '2', '3']

>>> [item*2 for item in li] #对字符串进行乘法运算,会使元素内容增长原有内容

['11', '22', '33']

 

keys, values 和 items 函数

>>> params = {"server":"mpilgrim", "database":"master", "uid":"sa", "pwd":"secret"}

>>> params.keys()  # Dictionary 的 keys 方法返回一个包含所有键的 list

['server', 'uid', 'database', 'pwd']

>>> params.values()  # values 方法返回一个包含所有值的 list,它同 keys 方法返回的 list 输出顺序相同,所以对于所有的 n,params.values()[n] == params[params.keys()[n]] 

['mpilgrim', 'sa', 'master', 'secret']

>>> params.items()  #items 方法返回一个由形如 (key,value) 组成的 tuple 的 list

[('server', 'mpilgrim'), ('uid', 'sa'), ('database', 'master'), ('pwd', 'secret')]

>>> [k for k, v in params.items()]   # 忽略了返回 list 中 v 的值,而只包含了 k 的值,所以这个 list 解析最后等于 params.keys()

['server', 'uid', 'database', 'pwd']

>>> [v for k, v in params.items()] 

['mpilgrim', 'sa', 'master', 'secret']

>>> ["%s=%s" % (k, v) for k, v in params.items()] 

['server=mpilgrim', 'uid=sa', 'database=master', 'pwd=secret']

你可能感兴趣的:(python)