在迭代中用python赋值%操作数



如果我有一个数组Numbers =[1,2,3]和一个依赖于这些数字的循环,在循环中我有一个字典或一些对象,我想用数组Numbers中的数字命名,我怎么能使用百分比操作数来赋值?

所以它看起来像

Numbers = [1, 2, 3]
for number in Numbers:
    dictionary_"" = {}

,其中"为数字。

仅仅使用百分比操作数,比如dictionary_%g = {} %(number),是行不通的。我该怎么做呢?谢谢。

你不能也不应该动态命名变量。你能做的是创建一个包含这三个字典的列表或字典。两层数据结构。

numbers = [1, 2, 3]
dictionaries = {}
for number in numbers:
    dictionaries[number] = {}

或者更简洁:

dictionaries = {number: {} for number in numbers}

exec函数允许您动态命名变量。在你的例子中,

Numbers = [1, 2, 3]
for number in Numbers:
    exec('dictionary_%d = {}' % number)

但这真的不是一个好主意。知道你打算做什么会很有帮助,但如果John Kugelman的答案解决了你的问题,我绝对会推荐它,而不是exec

最新更新