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

2024-03-28 22:15:05 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

如何访问每个条目的第一个值?例如,对于“Q0”,我想访问字母“a”和“b”,我该怎么做?你知道吗


Tags: 字符串目的列表字典字母结构q2q1
3条回答

您可以使用解包:

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')]]
>>> 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
>>> 

一种内衬:

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

相关问题 更多 >