2013-12-21 5 views
0

В приведенном ниже коде Python я динамически создаю списки.Динамические списки Python

g['quest_{0}'.format(random(x))] = [] 

где random(x) случайное число, как распечатать список (получить имя динамически созданного имя списка?)

+0

Сохраните случайное число (или весь ключ) в переменной сначала? –

+0

Это не список, это словарь списков. –

ответ

3

Чтобы получить список всех ключей словаря:

list(g.keys()) 

Там нет ничего другого с обычным словарем, потому что вы генерировать ключ динамически.

Обратите внимание, что вы также можете поместить любой тип hashable объекта в качестве ключа, например, кортеж:

g[('quest', random(x))] = [] 

Который позволит вам получить список всех номеров квестов легко:

[number for tag, number in g.keys() if tag == "quest"] 

с помощью этой техники, вы можете фактически цикл по тегу («квест»), количество и значение в одном цикле:

for (tag, number), value in g.items(): 
    # do somthing 

Распаковка - ваш лучший друг в Python.

+0

'list (g.keys)' должен быть 'list (g.keys())' или 'list (g)'. 'keys()' не требуется, потому что словари являются итерабельными и дают ключи, когда они повторяются. – falsetru

+0

Спасибо, опечатка. Исправлена. –

1

Вы можете перебрать g словаря с цикл, как это

for key, value in g.items(): 
    print key, value 

Это напечатает все ключи и их соответствующие списки.

Смежные вопросы