如何在循环中创建不同的变量名?
举个例子...
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'}
我说这话有点开玩笑,但其实最好的方法就是用字典来把一个值和另一个值关联起来。这就是字典的设计目的!