Как я создаю переменное количество переменных?

Для использования rtorrent в Ubuntu 12.04 просто установите пакет rtorrent Install rtorrent в Центре программного обеспечения.

(Однако, если у Вас есть командная строка только система без Центра программного обеспечения, необходимо использовать этот путь . Можно хотеть принять тот ответ.)

314
задан Taryn 22 March 2017 в 06:21
поделиться

4 ответа

Для этого вы можете использовать словари . Словари - это хранилища ключей и значений.

>>> dct = {'x': 1, 'y': 2, 'z': 3}
>>> dct
{'y': 2, 'x': 1, 'z': 3}
>>> dct["y"]
2

Вы можете использовать имена ключей переменных для достижения эффекта переменных переменных без риска для безопасности.

>>> x = "spam"
>>> z = {x: "eggs"}
>>> z["spam"]
'eggs'

В случаях, когда вы думаете о выполнении чего-то вроде

var1 = 'foo'
var2 = 'bar'
var3 = 'baz'
...

, список может быть более подходящим, чем dict. Список представляет собой упорядоченную последовательность объектов с целочисленными индексами:

l = ['foo', 'bar', 'baz']
print(l[1])           # prints bar, because indices start at 0
l.append('potatoes')  # l is now ['foo', 'bar', 'baz', 'potatoes']

Для упорядоченных последовательностей списки более удобны, чем dicts с целочисленными ключами,

266
ответ дан 23 November 2019 в 01:08
поделиться

Когда бы вы ни захотели использовать переменные-переменные, вероятно, лучше использовать словарь. Поэтому вместо записи

$foo = "bar"
$$foo = "baz"

вы пишете

mydict = {}
foo = "bar"
mydict[foo] = "baz"

. Таким образом вы случайно не перезапишете ранее существующие переменные (что является аспектом безопасности), и у вас могут быть другие «пространства имен».

33
ответ дан 23 November 2019 в 01:08
поделиться

Это плохая идея. Если вы обращаетесь к глобальной переменной, вы можете использовать globals () .

>>> a = 10
>>> globals()['a']
10

Если вы хотите получить доступ к переменной в локальной области, вы можете использовать locals () , но вы не можете присвоить значения возвращаемому dict.

Лучшее решение - использовать getattr или сохранить переменные в словаре, а затем обращаться к ним по имени.

65
ответ дан 23 November 2019 в 01:08
поделиться

Используйте встроенную функцию getattr , чтобы получить атрибут объекта по имени. При необходимости измените имя.

obj.spam = 'eggs'
name = 'spam'
getattr(obj, name)  # returns 'eggs'
80
ответ дан 23 November 2019 в 01:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: