从元组列表中提取不同的值

时间:2012-02-10 11:16:50

标签: python list tuples

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

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

我希望得到一个列表:

different_values = ("test", "test2")

现在我想通过这个“密钥”访问所有值并通过列表获取它们:

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

怎么做?

1 个答案:

答案 0 :(得分:11)

我会将您的数据转换为列表字典:

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

现在,您可以将d.keys()作为密钥访问,将每个密钥k的值列表作为d[k]

(很快,有人会前进并声称defaultdict会更好。不要听他们,在这种情况下无关紧要。)