从元组列表中提取不同值

3 投票
1 回答
1727 浏览
提问于 2025-04-17 12:45

如何从以下的元组列表中提取出不同的值呢?

tuple = ((("test", 123), ("test", 465), ("test", 8910), ("test2", 123)))

我想得到一个像这样的列表:

different_values = ("test", "test2")

现在我想通过这些“键”来访问所有的值,并把它们放到一个列表里:

test_values = (123, 456, 8910)
test2_values = (123)

该怎么做呢?

1 个回答

10

我会把你的数据转换成一个字典,里面包含列表:

d = {}
for k, v in tuples:
    d.setdefault(k, []).append(v)

现在你可以通过 d.keys() 来访问所有的键,而每个键 k 对应的值列表可以通过 d[k] 来获取。

(很快会有人说用 defaultdict 会更好。别听他们的,这种情况下其实没什么区别。)

撰写回答