Извлечение различных значений из списка кортежей - PullRequest
3 голосов
/ 10 февраля 2012

Как извлечь список различных значений из следующего списка кортежей?

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

Я хочу получить список вроде:

different_values = ("test", "test2")

Теперь я хочу получить доступ ко всем значениямпо этим «ключам» и получить их по списку:

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

Как это сделать?

1 Ответ

11 голосов
/ 10 февраля 2012

Я бы преобразовал ваши данные в словарь списков:

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

Теперь вы можете получить доступ к ключам как d.keys(), а список значений для каждой клавиши k как d[k].

(Вскоре кто-то сделает шаг вперед и скажет, что defaultdict будет лучше для этого. Не слушайте их, в данном случае это просто не имеет значения.)

...