遍历列表字典以及输出键和值

时间:2018-12-02 14:53:49

标签: python dictionary for-loop

我有以下示例中的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)

我得到的错误

  1. 我在iPython笔记本中看到要打印的第一件事是我创建的字典中的键,而不是 key1
  2. 在某个时候脚本停止,我看到以下错误:
  

IndexError Traceback(最近的呼叫   最后)在()       189我= 0       i在范围(0,10)中为190:   -> 191打印(键,“ |”,值[i])       192我= i + 1

     

IndexError:列表索引超出范围

我知道我可能会缺少一些东西:感谢那些有时间发表评论的人!

2 个答案:

答案 0 :(得分:0)

希望您发现字典中缺少'引用。使用in运算符可以避免索引问题。

for key, value in dictionary.items():
    for val in value:
        print (key, "|", val)

答案 1 :(得分:0)

第一个问题的根源是您在列表中缺少value之前的'。

第二,代码的i = 0i = 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)

因为这将适用于任意长度列表:)