【问题标题】:Get a dictionary from a list of multiple lists从多个列表的列表中获取字典
【发布时间】:2022-01-12 17:26:20
【问题描述】:

从具有多个列表的给定列表中,我需要将它们放入字典中。这是列表列表:

my_table = [["Account Manager", "Name", "BP", "Contact", "Quote Name", "Type", "Status", "Total"],
            ["bubble", "kwlak", "5677", "conn", "987", "butter", "fish", "fill", "stat", "total"],
            ["rose", "kwlak", "5677", "conn", "987", "butter", "fish", "fill", "stat", "total"],
            ["purple", "kwlak", "5677", "conn", "987", "butter", "fish", "fill", "stat", "total"],
            ["dark", "kwlak", "5677", "conn", "987", "butter", "fish", "fill", "stat", "total"],
            ["star", "kwlak", "5677", "conn", "987", "butter", "fish", "fill", "stat", "total"],
            ["asmr", "kwlak", "5677", "conn", "987", "butter", "fish", "fill", "stat", "total"],]

我尝试了这段代码,它正确地给了我想要的键(第一个列表 (["Account Manager", "Name", "BP", "Contact", "Quote Name", "Type", "Status", "Total"]))作为键,但它只给了我所有列表中的另一个列表作为值。

代码:

dict_from_table = {}
for key in my_table[0]:
  for value in my_table:
    dict_from_table[key] = value


print(dict_from_table)

它给我的结果是:

{'Account Manager': ['asmr', 'kwlak', '5677', 'conn', '987', 'butter', 'fish', 'fill', 'stat', 'total'], 'Name': ['asmr', 'kwlak', '5677', 'conn', '987', 'butter', 'fish', 'fill', 'stat', 'total'], 'BP': ['asmr', 'kwlak', '5677', 'conn', '987', 'butter', 'fish', 'fill', 'stat', 'total'], 'Contact': ['asmr', 'kwlak', '5677', 'conn', '987', 'butter', 'fish', 'fill', 'stat', 'total'], 'Quote Name': ['asmr', 'kwlak', '5677', 'conn', '987', 'butter', 'fish', 'fill', 'stat', 'total'], 'Type': ['asmr', 'kwlak', '5677', 'conn', '987', 'butter', 'fish', 'fill', 'stat', 'total'], 'Status': ['asmr', 'kwlak', '5677', 'conn', '987', 'butter', 'fish', 'fill', 'stat', 'total'], 'Total': ['asmr', 'kwlak', '5677', 'conn', '987', 'butter', 'fish', 'fill', 'stat', 'total']}

没关系,但它只是所有列表中的最后一个列表。

我希望输出使用相同的键,但要给我大列表中的每个列表。所以第一次使用列表 1 的键,然后使用列表 2 的相同键 ...

【问题讨论】:

  • 字典中的每一个键都必须是唯一的,所以每次你给一个键赋值时,这个值都会被新值替换。

标签: python list dictionary


【解决方案1】:

你没有说想要的输出是什么,但如果它是每个值 以下列表在同一位置的键下的列表中:`

dict_from_table = {}
for position, key in enumerate(my_table[0]):
  dict_from_table[key] = []
  for value_row in my_table[1:]:
    dict_from_table[key].append(value_row[position])

print(dict_from_table)

【讨论】:

  • 非常感谢 :) 这对我很有帮助
猜你喜欢
  • 2011-11-08
  • 1970-01-01
  • 2020-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多