【发布时间】:2016-06-30 14:25:13
【问题描述】:
我想创建一个OrderedDict,每个键对应一个字符串,每个值对应一个字符串列表。
from collections import OrderedDict
# Compare a dict with an OrderedDict
someDict = dict(a = ["foo","bar"], b = ["baz"])
someOrderedDict = OrderedDict([("a",("foo","bar")),("b",("baz"))])
我需要通过访问键和值来遍历这个字典。在普通字典上,这很简单:
for k,v in someDict.items():
for eachv in v:
print("do something with key = " + k + " and value = " + eachv)
# returns the desired output:
# do something with key = a and value = foo
# do something with key = a and value = bar
# do something with key = b and value = baz
(如果这可以在理解中完成,请赐教——我无法弄清楚如何在不失去对密钥的访问权的情况下做到这一点。)
当我在OrderedDict 上尝试这个时,我得到:
for k,v in someOrderedDict.items():
for eachv in v:
print("do something with key = " + k + " and value = " + eachv)
# results in undesirable splitting of value "baz" into ["b","a","z"]:
# do something with key = a and value = foo
# do something with key = a and value = bar
# do something with key = b and value = b
# do something with key = b and value = a
# do something with key = b and value = z
我做错了什么?
【问题讨论】:
标签: python python-3.x dictionary ordereddictionary