#!/usr/bin/python
count=3
for i in range(0,count):
dict[i]= {}
Здесь я хочу создать 3 (так как count = 3) словари, такие как dict1, dict2, dict3.Как создать динамические словарные имена
#!/usr/bin/python
count=3
for i in range(0,count):
dict[i]= {}
Здесь я хочу создать 3 (так как count = 3) словари, такие как dict1, dict2, dict3.Как создать динамические словарные имена
Вы можете сделать Somthing так:
count = 3
for i in range(0, count):
exec("dict%d = %s" % (i + 1, {}))
print dict1
print dict2
выход: {} {}
почему -1 и -2? если у кого-то есть другое решение, опубликуйте его, если нет, поэтому нет причин делать эти вещи. если я ошибаюсь, скажите мне правильное решение. –
Я не голосовал, но это ужасная практика и даже не работает в функции, а не в Python 3. В Python 2 она отключает важные оптимизации для пространства имен локальных функций. –
@MartijnPieters спасибо, мы здесь, чтобы учиться друг у друга :) –
Вам не нужно кучу переменных. Вы можете просто использовать массив dicts. Вы почти поняли это в своем коде. Вот правильный вариант: (!)
#!/usr/bin/python
count=3
d = [{} for _ in range(count)]
# Instead of dict1/2/3, use d[0/1/2].
Если по какой-либо причине вы действительно хотите иметь одиночные переменные для словарей (dict1, dict2, ...), то вы можете сделать следующее:
>>> count=3
>>> for i in range(0,count):
... locals()['dict{}'.format(i)] = {}
...
>>> dict1
{}
locals()['dict{}'.format(i)] = {}
добавит локальную переменную с именем 'dir {count}' и присвоит ей значение. locals()
показывает локальные переменные и их значения.
Помните: сделайте это, только если вы действительно знаете, что делаете. Прочтите также примечание к locals
в «Python documentation»: «Содержание этого словаря не должно изменяться, изменения могут не влиять на значения локальных и свободных переменных, используемых интерпретатором».
Почему вы хотите это сделать? В любом месте, где вы, возможно, захотите написать 'dict1', вы можете вместо этого написать' dict [0] '(хотя использование имени' dict' является сомнительным, так как это имя типа). –
@Marcelo Cantos Позже я вставлю и добавлю значения (здесь я возьму списки) до одного значения ключа. И многие другие манипуляции, которые я хочу использовать для этих диктонов, созданных здесь. – user3197309
Это не объясняет, почему вы не можете просто использовать один диктофон dicts, как вы пытались сделать выше. –