有没有办法在python中使用for循环循环一组具有相似名称的变量?
一个例子(来自nltk库): 我有一组名为text1,text2,text3,...,text9的变量,我想对所有这些变量进行某些操作,而不必每次都明确键入它们的名字,所以我正在寻找一种方法像这样循环遍历:
for x in range(1, 9):
text + x.someFunction()
我知道这是不允许的,但是有办法做这样的事吗?
答案 0 :(得分:2)
您可以使用eval:
eval("text" + str(1))
例如,要在地图中加载值:
data = dict()
for x in xrange(1, 9):
key = "text" + str(x)
data[key] = eval(key)
或者,如果您的变量是具有方法someFunction
的类的对象:
for x in xrange(1, 9):
cmd = "text" + str(x) + ".someFunction()"
eval(cmd)
答案 1 :(得分:0)
您可以使用eval
for x in range(1, 9):
eval('text%d' % x).someFunction()
答案 2 :(得分:0)
试试这个。
for v in (text1, text2, text3):
v.someFunction()
答案 3 :(得分:0)
列出清单:
texts = [text1, text2, text3, text4, text5, text6, text7, text8, text9]
然后你可以像对待任何其他列表一样迭代它:
for text in texts:
我假设textn
变量不会发生变化。如果您正在使用nltk.book
中的示例数据,我相信这个假设应该成立。