Python:访问元组列表字典中的单个值

Python:访问元组列表字典中的单个值,python,dictionary,tuples,Python,Dictionary,Tuples,我有一个Python字典,其中每个键都有一组十个元组。我试图在字典中迭代访问每个元组中的各个元素——我应该怎么做呢 字典如下所示: {'Key1': [(Hi, 1), (Bye, 2)], 'Key2': [(Cats, Blue), (Dogs, Red)]} 假设我需要键的向量,第一个元素的向量[Hi,Bye,Cats,Dogs]和第二个元素的向量[1,2,Blue,red] 这是我尝试的代码: for key in dict: for tuplelist

我有一个Python字典,其中每个键都有一组十个元组。我试图在字典中迭代访问每个元组中的各个元素——我应该怎么做呢

字典如下所示:

    {'Key1': [(Hi, 1), (Bye, 2)], 'Key2': [(Cats, Blue), (Dogs, Red)]}
假设我需要键的向量,第一个元素的向量[Hi,Bye,Cats,Dogs]和第二个元素的向量[1,2,Blue,red]

这是我尝试的代码:

    for key in dict:
        for tuplelist in dict:
             key_vector.append(key_
             tuple1_vector.append(dict[key[1]])
             tuple2_vector.append(dict[key[2]])

我知道这是不正确的,但我不知道如何去解决它。

我想你的意思是你的口述是:

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)

我想你的意思是你的口述是:

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)
您可以使用
.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]
您可以使用
.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]

您可以执行以下操作:

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]中的项…)。

您可以执行以下操作:

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]中的项…)。

谢谢你的帮助!谢谢你的帮助!