我在Python中有一个字典,其中每个键都有一组十个元组。我试图遍历字典访问每个元组中的各个元素 - 我应该怎么做?
字典看起来像这样:
{'Key1': [(Hi, 1), (Bye, 2)], 'Key2': [(Cats, Blue), (Dogs, Red)]}
说我想要Keys的矢量,第一个元素的矢量[Hi,Bye,Cats,Dogs]和第二个[1,2,蓝色,红色]之一
这是我正在尝试的代码:
for key in dict:
for tuplelist in dict:
key_vector.append(key_
tuple1_vector.append(dict[key[1]])
tuple2_vector.append(dict[key[2]])
我知道这是不正确的,但我不确定如何修复它。
答案 0 :(得分:1)
我认为你的意思是你的意思是:
your_dict = {'Key1': [('Hi', 1), ('Bye', 2)], 'Key2': [('Cats', 'Blue'), ('Dogs', 'Red')]}
您可以迭代所有键,获取其中的任何元组,然后迭代该元组内的所有条目。可能有一种更简单的方法,但这至少可以让你到达那里:
for key in your_dict:
for t in your_dict[key]:
for i in t:
print(i)
答案 1 :(得分:1)
您可以使用.values()
访问字典中的值,然后遍历值列表并索引元组中的相应项:
tuple1_vector = []
tuple2_vector = []
for v in d.values():
for t in v:
tuple1_vector.append(t[0])
tuple2_vector.append(t[1])
您也可以使用列表理解来执行此操作:
tuple1_vector = [t[0] for v in d.values() for t in v]
tuple2_vector = [t[1] for v in d.values() for t in v]
print(tuple1_vector)
# ['Cats', 'Dogs', 'Hi', 'Bye']
print(tuple2_vector)
# ['Blue', 'Red', 1, 2]
答案 2 :(得分:0)
您可以执行以下操作:
keys = []
tuple1 = []
tuple2 = []
For key in dict:
keys.append(key)
tuple1.append(dict[key][0][0])
tuple1.append(dict[key][0][1])
tuple1.append(dict[key][1][0])
tuple1.append(dict[key][1][1])
但是不,这是非常糟糕的代码。我只是展示了一个解决方案,但这不值得。其他人做得更好(例如迭代dict [key](例如dict [key]中的项目......)。