如果我有一个数组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
。