Python - 如何访问每个条目的第一个值

时间:2018-04-09 12:00:52

标签: python dictionary

我有一个有着奇怪结构的字典;每个键都有多个值,其中包含列表或字符串本身:

{'Q0': {('a', 'Q1'), ('b', 'Q1')}, 'Q1': {('', 'Q2'), ('a', 'Q2'), ('b', 'Q2')}}

如何访问每个条目的第一个值?例如,对于' Q0'我想访问这封信' a'和b,我该怎么做?

3 个答案:

答案 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']