我已经获得了以下代码
>>> params = {"server":"mpilgrim", "database":"master", "uid":"sa", "pwd":"secret"}
>>> params.items()
[('server', 'mpilgrim'), ('uid', 'sa'), ('database', 'master'), ('pwd', 'secret')]
这是我感到困惑的部分。
我有k for k
和v
。
>>> [k for k, v in params.items()]
['server', 'uid', 'database', 'pwd']
>>> [v for k, v in params.items()]
['mpilgrim', 'sa', 'master', 'secret']
我知道它是多变量的,但是当我将a
的{{1}}和k
的{{1}}更改为b
时,它会给我{{1}作为错误。
我对多变量的理解是否遗漏了什么?
答案 0 :(得分:1)
只要您保持一致,就可以选择用于列表推导的名称。以下工作完全相同:
[ a for a, v in params.items() ]
[ k for k, v in params.items() ]
>>> a = 5
>>> [ a for a in range(3) ]
[0, 1, 2]
>>> a
2
在Python 3中,理解形成了一个新的范围,因此在理解中使用的名称是本地的。
>>> a = 5
>>> [ a for a in range(3) ]
[0, 1, 2]
>>> a
5