从元组列表中提取不同值
如何从以下的元组列表中提取出不同的值呢?
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
会更好。别听他们的,这种情况下其实没什么区别。)