如何将多个值列表映射到 Python 字典中的键列表?
我想把一些值(一个列表的列表)映射到一些键(一个列表)上,放到一个Python字典里。
发现可以这样做:
headers = ['name', 'surname', 'city']
values = [
['charles', 'rooth', 'kentucky'],
['william', 'jones', 'texas'],
['john', 'frith', 'los angeles']
]
data = []
for entries in values:
data.append(dict(itertools.izip(headers, entries)))
但我在想,是否还有更好的方法呢?
谢谢!
PS:我用的是Python 2.6.7
3 个回答
2
在编程中,有时候我们需要让程序在特定的条件下执行某些操作。这就像给程序设定了一些规则,只有当这些规则被满足时,程序才会继续进行。比如说,如果你想让程序在用户输入正确的密码后才能进入系统,这就是一个条件判断的例子。
条件判断通常使用“如果...那么...”的结构。比如,程序会先检查用户输入的密码是否正确,如果正确,就允许用户进入;如果不正确,就提示用户再试一次。
这种方式可以帮助我们控制程序的流程,让程序更加智能和人性化。通过设置条件,我们可以让程序根据不同的情况做出不同的反应。
总之,条件判断是编程中非常重要的一部分,它让我们的程序能够根据实际情况做出灵活的调整。
from functools import partial
from itertools import izip, imap
data = map(dict, imap(partial(izip, headers), values))
2
你可以使用一种叫做 列表推导式 的方法:
data = [dict(itertools.izip(headers, entries)) for entries in values]
1
这已经很好了……
data = [dict(itertools.izip(headers, entries) for entries in values]