如何在python上执行while循环定义x1、x2、x3等

如何在python上执行while循环定义x1、x2、x3等,python,for-loop,while-loop,Python,For Loop,While Loop,您好,我需要用python定义一系列数据,比如(x1=thing,x2=thing…到x100=thing),我不想写所有的x(数字)。我试过这样的环 a=1 while(a<100): x'a'=thing a=a+1 我不需要打印它,只需要定义dex(number)。 谢谢大家你不需要。这并不是说你不能,但你肯定不想 foo = [] for _ in range(100): # do the following 100 times: foo.append(

您好,我需要用python定义一系列数据,比如(x1=thing,x2=thing…到x100=thing),我不想写所有的x(数字)。我试过这样的环

a=1
while(a<100):
    x'a'=thing
    a=a+1
我不需要打印它,只需要定义dex(number)。
谢谢大家

你不需要。这并不是说你不能,但你肯定不想

foo = []
for _ in range(100):  # do the following 100 times:
    foo.append("thing")
# or foo = ['thing' for _ in range(100)]
# or foo = ['thing'] * 100
这将为您提供一个名为
foo
列表,每个元素的值为
“thing”

foo[0]  # "thing"
foo[99] # "thing"
foo[100]  # throws an IndexError
另一种方法是直接操作
globals
dict(这是一个坏主意),或者使用
exec
(这是一个非常坏的主意)

这并不是说
exec
本身就是坏的,也不是说直接操纵
globals
dict没有它的位置。但是,如果您在接受教育时仍在询问有关StackOverflow上Python的问题,您甚至不应该考虑使用这些方法。充其量这是一个丑陋的黑客,你应该做些别的。在最坏的情况下,它会破坏你的脚本,并允许恶意(或无意中…阅读:你自己)用户在你的计算机上做任何它想做的事情。这包括:

# WARNING, THIS CODE WILL TRASH YOUR COMPUTER
>>> exec(input("user input command> "))
user input command> import shutil; shutil.rmtree("C:/")
# DON'T COME CRYING TO ME WHEN YOUR SYSTEM WON'T BOOT

谢谢大家!!原来我不知道如何使用列表哈哈哈。。。这就是最终对我起作用的原因:

lina=[0,0]
linb=[0,0]
fig=plt.figure()
a=1
while(a<2):
   lina[a],=fig.add_subplot(111).plot(x,x, 'b^',markersize=20)
   linb[a],=fig.add_subplot(111).plot(x,x, 'rv',markersize=20)    
   a=a+1
lina=[0,0]
linb=[0,0]
图=plt.图()
a=1

虽然(我确信你不需要那么多变量。将事物存储在列表中。你需要的是一个列表。或者如果你想通过名称访问它们,则需要一个dict。但看起来你可能只需要一个列表hmm谢谢!太快了!但我正在用matplotlib制作动画,当我使用列表时,它会显示几个错误,然后发布一个关于错误的问题。定义ning 100个名为
a1
a100
的变量并不是任何问题的解决方案。这本质上就是
foo=100*[“thing”]
@khelwood正是如此,尽管我有点怀疑OP实际上只需要100个值完全相同的元素。。。。
for num in range(1, 101):
    globals()["x{}".format(num)] = "thing"
    # it's so ugly it burns!
# WARNING, THIS CODE WILL TRASH YOUR COMPUTER
>>> exec(input("user input command> "))
user input command> import shutil; shutil.rmtree("C:/")
# DON'T COME CRYING TO ME WHEN YOUR SYSTEM WON'T BOOT
lina=[0,0]
linb=[0,0]
fig=plt.figure()
a=1
while(a<2):
   lina[a],=fig.add_subplot(111).plot(x,x, 'b^',markersize=20)
   linb[a],=fig.add_subplot(111).plot(x,x, 'rv',markersize=20)    
   a=a+1