【问题标题】:How to convert this list into a dictionary如何将此列表转换为字典
【发布时间】:2015-11-20 10:28:27
【问题描述】:

我目前有一个看起来像这样的列表

list =  [['hate', '10'], ['would', '5'], ['hello', '10'], ['pigeon', '1'], ['adore', '10']]

我想把它转换成这样的字典

dict = {'hate': '10', 'would': '5', 'hello': '10', 'pigeon': '1', 'adore': '10'}

所以基本上list [i][0] 将是键,list [i][1] 将是值。任何帮助将不胜感激:)

【问题讨论】:

  • 我认为您的意思是,例如,{'hate': '10'} 而不是['hate': '10']
  • 是的,哈哈,对不起那个错误
  • 另外,您想要字典列表还是单个字典?
  • 基本上这样做的目的是每个键都将保存一个值。然后,我将搜索一个 .txt 文件,其中包含这些键的一长段单词。如果找到,则计数器会将键的相应值添加到总和中。最后我必须提出总和。我不知道这是否有助于回答这个问题:(。对不起,我对此很陌生

标签: python list dictionary


【解决方案1】:

使用dict 构造函数:

In [1]: lst =  [['hate', '10'], ['would', '5'], ['hello', '10'], ['pigeon', '1'], ['adore', '10']]

In [2]: dict(lst)
Out[2]: {'adore': '10', 'hate': '10', 'hello': '10', 'pigeon': '1', 'would': '5'}

请注意,从您的编辑看来,您需要将值设为整数而不是字符串(例如 '10'),在这种情况下,您可以将每个内部列表的第二项转换为 int,然后再将它们传递给 @ 987654326@:

In [3]: dict([(e[0], int(e[1])) for e in lst])
Out[3]: {'adore': 10, 'hate': 10, 'hello': 10, 'pigeon': 1, 'would': 5}

【讨论】:

  • 非常感谢!这非常有帮助
  • 再次嗨,我确实有这个问题的第 2 部分所以现在我有了字典,我想在文本文件中搜索键。我将如何创建一个循环来搜索这些键的文本?
  • 嗨,John - 这确实值得单独提出一个关于 SO 的问题:首先进行搜索,看看它是否已经被回答过,因为有几个 Python 工具可能会有所帮助。
  • 嗨 xnx,非常感谢。我已经单独问了这个问题:stackoverflow.com/questions/33826229/…
【解决方案2】:

你可以这样做:

import numpy as np

array = np.array(list)
for i in xrange(len(list)):
    dict[array[i][0]] = array[i][1]

给予:

>>> dict
{'pigeon': '1', 'hate': '10', 'hello': '10', 'would': '5', 'adore': '10'}

【讨论】:

    【解决方案3】:
    list =  [['hate', '10'], ['would', '5'], ['hello', '10'], ['pigeon', '1'], ['adore', '10']]
    
    new_dict = dict(list)
    

    输出:

    {'pigeon': '1', 'hate': '10', 'hello': '10', 'would': '5', 'adore': '10'}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-06
      • 1970-01-01
      • 2022-11-27
      • 2020-12-08
      • 2011-07-11
      相关资源
      最近更新 更多