我有以下示例中的Python脚本:
dictionary = {
'key1': ['value1', 'value2', 'value3', 'value4', 'value5', 'value6', 'value7', 'value8', 'value9', 'value10'],
'key2': ['value1', 'value2', 'value3', 'value4', 'value5', 'value6', 'value7', 'value8', 'value9', 'value10']
}
for key, value in dictionary.items():
i = 0
for i in range (0, 10):
print (key, "|", value[i])
i = i+1
我希望它能打印出类似以下结果:
key1|value1
key1|value2
key1|value3
(and so on for all the keys in the input)
IndexError Traceback(最近的呼叫 最后)在() 189我= 0 i在范围(0,10)中为190: -> 191打印(键,“ |”,值[i]) 192我= i + 1
IndexError:列表索引超出范围
我知道我可能会缺少一些东西:感谢那些有时间发表评论的人!
答案 0 :(得分:0)
希望您发现字典中缺少'
引用。使用in
运算符可以避免索引问题。
for key, value in dictionary.items():
for val in value:
print (key, "|", val)
答案 1 :(得分:0)
第一个问题的根源是您在列表中缺少value之前的'。
第二,代码的i = 0
和i = i+1
部分是多余的,因为i
每次都是由for循环分配的。我不会遍历一个范围,而是遍历您的值列表:
dictionary = {
'key1': ['value1', 'value2', 'value3', 'value4', 'value5', 'value6', 'value7', 'value8', 'value9', 'value10'],
'key2': ['value1', 'value2', 'value3', 'value4', 'value5', 'value6', 'value7', 'value8', 'value9', 'value10']
}
for key, values in dictionary.items():
for value in values:
print(key, "|", value)
因为这将适用于任意长度列表:)