我有一个有着奇怪结构的字典;每个键都有多个值,其中包含列表或字符串本身:
{'Q0': {('a', 'Q1'), ('b', 'Q1')}, 'Q1': {('', 'Q2'), ('a', 'Q2'), ('b', 'Q2')}}
如何访问每个条目的第一个值?例如,对于' Q0'我想访问这封信' a'和b,我该怎么做?
答案 0 :(得分:2)
您可以使用解包:
d = {'Q0': {('a', 'Q1'), ('b', 'Q1')}, 'Q1': {('', 'Q2'), ('a', 'Q2'), ('b', 'Q2')}}
new_d = [a for a, _ in d['Q0']]
输出:
['b', 'a']
编辑:配对集合中的值:
new_data = [[i for i in b] for _, b in d.items()]
输出:
[[('a', 'Q2'), ('', 'Q2'), ('b', 'Q2')], [('b', 'Q1'), ('a', 'Q1')]]
答案 1 :(得分:0)
>>> a = {'Q0': {('a', 'Q1'), ('b', 'Q1')}, 'Q1': {('', 'Q2'), ('a', 'Q2'), ('b', 'Q2')}}
>>> for i,j in a.iteritems():
... print "First entries for " + str(i) + " : "
... for k in tuple(j):
... print k[0]
...
First entries for Q1 :
a
b
First entries for Q0 :
b
a
>>>
答案 2 :(得分:0)
有一种班轮:
input_dict = {'Q0': {('a', 'Q1'), ('b', 'Q1')},'Q1': {('', 'Q2'), ('a', 'Q2'), ('b', 'Q2')}}
from itertools import product
output = [i[1][0] for i in list(product(*input_dict.values()))]
print output
Out[89]: ['b', 'a', 'b', 'a', 'b', 'a']