我有1000个变量,a1,a2,a3,a4,a5
等等。有没有办法使用循环
我的尝试:
for i in range(1,1001):
"a"i=100
我在这里缺少基本语法。
答案 0 :(得分:4)
永远不要这样做。这样做你绝对没有任何好处。如果您以这种方式设置它们,如何动态地重新引用这些变量?改为使用列表或字典。
a_list = [None] + [100] * 1000
# `a_list[n]` in place of `an`, here
a_dict = {num:100 for num in range(1, 1001)}
# `a_dict[n]` in place of `an`, here
编辑为您的棋盘类比:
import string
class ChessBoard(list):
def __init__(self, side_length, initial_value=None):
super().__init__()
for _ in range(side_length):
self.append([initial_value for _ in range(side_length)])
def get(self, notation):
"""Maps chess notation to the 2D list"""
indices = dict([(lett, num) for num,lett in
enumerate(string.ascii_letters, start=1)])
# {'a':1, 'b':2, ... 'Z':52}
x, y = indices[notation[0]]-1, int(notation[1])-1
return self[y][x]
board = ChessBoard(1000, 100) # how do we index the 1000th...nevermind
board.get("a6")
答案 1 :(得分:0)
要做这样的事情,你真的应该使用一个列表。 初始化长度为1000的列表,每个条目设置为100可以通过
完成a = [100] * 1000
你可以使用exec
在列表之外设置这样的变量,但这不是好习惯,除非你有一些奇怪的令人信服的理由这样做。
请注意,这些条目的索引编号为0到999。
答案 2 :(得分:0)
您可以使用Python Arrays/Lists.执行此操作。对于您的情况,您可以通过执行以下操作创建1000 100的列表:
my_array = [100]*1001
要在该列表中找到某个值,请"索引"进去。例如:
print(my_array[300])
print语句将打印列表中的第301个值(因为数组索引从0开始计数)。
答案 3 :(得分:0)
我会重申这是一种不好的做法,但你可以这样做。
for i in xrange(1, 1001):
globals()['a%s' % i] = 100
for i in xrange(1, 1001):
name = 'a%d' % i
print '%s = %d' % (name, globals()[name])
第二个循环只打印它们。