Python将键值对列表转换成字典。

43

我有一个包含大约50个字符串的列表,其中附带一个整数表示它们在文本文档中出现的频率。我已经按照下面所示的格式进行了格式化,并尝试创建一个包含此信息的字典,其中第一个单词是值,旁边的数字是键。

string = [('limited', 1), ('all', 16), ('concept', 1), ('secondly', 1)]

我目前拥有的代码:

my_dict = {}
for pairs in string:
    for int in pairs:
       my_dict[pairs] = int

5
“string” 或许不是那个物体的好名称选择。 - Russell Borogove
可能是重复的问题:Python:如何将键值对元组列表转换为字典? - Victor Sergienko
4个回答

80
就像这样,Python的dict()函数非常适合将一个list转换为tuple,这也是你所拥有的。
>>> string = [('limited', 1), ('all', 16), ('concept', 1), ('secondly', 1)]
>>> my_dict = dict(string)
>>> my_dict
{'all': 16, 'secondly': 1, 'concept': 1, 'limited': 1}

对我来说,它将值放在一个列表中。 请问你能告诉我如何解决吗? {'all': ['16'], 'secondly': ['1'], 'concept': ['1'], 'limited': ['1']} - Reihan_amn

18

只需调用dict()函数:

>>> string = [('limited', 1), ('all', 16), ('concept', 1), ('secondly', 1)]
>>> dict(string)
{'limited': 1, 'all': 16, 'concept': 1, 'secondly': 1}

2

string变量是一组键值对列表。这意味着您可以执行类似于以下操作:

string = [...]
my_dict = {}
for k, v in string:
  my_dict[k] = v

这可以用字典推导式在一行代码中完成。 - anon582847382
1
@AlexThornton 我知道。但是既然看起来OP刚开始学习Python,我认为逐步开发他的解决方案是个好主意。对于刚开始使用Python编程的人来说,dict构造函数可能会看起来像魔法一样... - vz0

1

制作一对2个列表并将它们转换为 dict()

list_1 = [1,2,3,4,5]
list_2 = [6,7,8,9,10]
your_dict = dict(zip(list_1, list_2))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接