如何将多个值列表映射到 Python 字典中的键列表?

2 投票
3 回答
1737 浏览
提问于 2025-04-17 07:53

我想把一些值(一个列表的列表)映射到一些键(一个列表)上,放到一个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]

撰写回答