【发布时间】:2022-01-14 15:01:43
【问题描述】:
嗨 :) 我有这个表,我需要将它转换成字典,其中第一行是键,然后其余表中的每个值都是值,但每次都遍历它们。我有这张桌子:
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"],]
这是用于迭代它的代码:
dict_from_table = {}
for position, key in enumerate(my_table[0]):
dict_from_table[key] = []
for value_row in my_table[1:2]:
dict_from_table[key].append(value_row[position])
print(dict_from_table)
这是它的输出:
{'Account Manager': ['bubble'], 'Name': ['kwlak'], 'BP': ['5677'], 'Contact': ['conn'], 'Quote Name': ['987'], 'Type': ['butter'], 'Status': ['fish'], 'Total': ['fill']}
我需要它遍历所有列表并为键(帐户管理器、名称等)返回每个值一次,但我也不希望它以列表形式返回值,我希望它在与键相同的字典。我需要另一个 for 循环吗?
【问题讨论】:
-
您需要将其作为列表返回,因为每个键都必须是唯一的
-
my_table中的第一个列表有 8 个元素,但其他列表有 10 个元素。所以你不能使用第一个列表作为其他列表元素的键。 -
按照 Mohammed Khoshbin 的建议,您将遇到
IndexError
标签: python list loops dictionary key-value