如何在循环中创建不同的变量名?

210 投票
9 回答
653930 浏览
提问于 2025-04-16 18:39

举个例子...

for x in range(0,9):
    string'x' = "Hello"

所以我最后得到了 string1、string2、string3... 它们的值都是 "Hello"

9 个回答

54

你可以用 exec() 这个方法来实现这个功能。比如说:

for k in range(5):
    exec(f'cat_{k} = k*2')
>>> print(cat_0)
0
>>> print(cat_1)
2
>>> print(cat_2)
4
>>> print(cat_3)
6
>>> print(cat_4)
8

在这里,我利用了 Python 3.6 及以上版本中非常方便的 f 字符串格式化功能。

118

这真的是个坏主意,不过……

for x in range(0, 9):
    globals()['string%s' % x] = 'Hello'

然后比如说:

print(string3)

这样会给你带来:

Hello

不过,这种做法并不好。你应该使用字典或列表,正如其他人所建议的那样。除非你真的想知道怎么做,但又不打算使用它。

241

当然可以,这个东西叫做字典

d = {}
for x in range(1, 10):
    d["string{0}".format(x)] = "Hello"
>>> d["string5"]
'Hello'
>>> d
{'string1': 'Hello',
 'string2': 'Hello',
 'string3': 'Hello',
 'string4': 'Hello',
 'string5': 'Hello',
 'string6': 'Hello',
 'string7': 'Hello',
 'string8': 'Hello',
 'string9': 'Hello'}

我说这话有点开玩笑,但其实最好的方法就是用字典来把一个值和另一个值关联起来。这就是字典的设计目的!

撰写回答