如何迭代地将编号对象添加到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)])