我要打印本词典的所有键和值的唯一组合:
items = {'a':[10,100,1000],'b':[11,110],'c':[12,120]}用密码,
for key, value in items.items():
print(key,value)我收到以下输出:
b [11, 110]
c [12, 120]
a [10, 100, 1000]我想根据字典得出以下结果:
b 11
b 110
c 12
c 120
a 10
a 100
a 1000键值组合的顺序并不重要,但结果应该保持这种关系。与往常一样,任何与此问题相关的建议资源和/或搜索条件都将受到赞赏。
发布于 2016-09-20 17:35:57
你真的很亲密:
items = {'a':[10,100,1000],'b':[11,110],'c':[12,120]}
# iterate on key/items couple
for k,vl in items.items():
# iterate on all values of the list
for v in vl:
# print with a simple format
print("{} {}".format(k,v))产出:
a 10
a 100
a 1000
c 12
c 120
b 11
b 110请注意,您可以使用for k,vl in sorted(items.items()):打印排序顺序(a,b,c)中的键,内部列表也是如此:
# iterate on key/items couple
for k,vl in sorted(items.items()):
# iterate on all values of the list
for v in sorted(vl):
# print with a simple format
print("{} {}".format(k,v))产出:
a 10
a 100
a 1000
b 11
b 110
c 12
c 120发布于 2016-09-20 17:45:42
或者简单地说:
items = {'a':[10,100,1000],'b':[11,110],'c':[12,120]}
for key, value in items.items():
for v in value :
print(key,v)发布于 2016-09-20 17:39:34
使用itertools.chain.from_iterables和列表理解,您可以将其“扁平化”成一个元组列表:
In [27]: import itertools
In [28]: list(itertools.chain.from_iterable([[(item_[0], v) for v in item_[1]] for item_ in items.items()]))
Out[28]:
[('a', 10),
('a', 100),
('a', 1000),
('c', 12),
('c', 120),
('b', 11),
('b', 110)]因此,做任何你想做的事情都很容易,比如打印它:
In [29]: for k, v in itertools.chain.from_iterable([[(item_[0], v) for v in item_[1]] for item_ in items.items()]):
....: print k, v
....:
a 10
a 100
a 1000
c 12
c 120
b 11
b 110https://stackoverflow.com/questions/39600405
复制相似问题