Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何迭代地将编号对象添加到python列表中?_Python_Python 3.x_List - Fatal编程技术网

如何迭代地将编号对象添加到python列表中?

如何迭代地将编号对象添加到python列表中?,python,python-3.x,list,Python,Python 3.x,List,我有一组“问题”对象,我想把它们放在列表中。有几百个这样的对象,每个对象都以编号的方式命名:question1、question2,等等 我可以通过将它们全部键入以下内容来构建列表: question_list = [question1, question2, question3, ... ... question500] 但似乎必须有一种简单易行的方法来建立列表,比如: for i in range(500): question_list.append

我有一组“问题”对象,我想把它们放在列表中。有几百个这样的对象,每个对象都以编号的方式命名:
question1、question2
,等等

我可以通过将它们全部键入以下内容来构建列表:

question_list = [question1, question2, question3, ...
                ... question500]
但似乎必须有一种简单易行的方法来建立列表,比如:

for i in range(500):
    question_list.append(questioni)

有什么建议吗?

您可以通过globals()方法访问变量

我试过这个:

variable1=“第一个问题”
variable2=“第二个问题尝试”
所有_值=dir()
输出=[]
对于所有_值中的v:
如果v中有('variab'):
输出追加(eval(v))
打印(输出)

dir()函数显示变量的所有字符串名称,如果您只需要变量questionI的输出,可以使用eval()方法获取questionI中的对象(我已经确认它是字符串值)。我认为如果您更改if语句并使用字符串'question',它可以工作。

尽管
eval()
函数不适合最佳实践,但您可以使用它<代码>对于范围(500)内的i:question_list.append(eval(f“question{i}”)听起来像是应该将原始设计更改为一个列表,而不是500个变量。每当你发现自己有很多名为
question1
question2
的变量时,是时候进行重构了。你永远也找不到一条可持续发展的道路。它应该是
question=[]
,然后是
question[0]
question[1]
之后一切都会安排妥当。或者是一本字典
{'q1':question1,'q2':question2…}
是的,也许这是一个更好的解决方案。globals()返回包含当前全局符号表的字典,因此您可以访问其中的所有变量。
for i in range(500):
   question_list.append(globals()['question{}'.format(i)])