我对这个问题的所有回答要么是短路,要么不是纯粹的Python。你知道吗
如果我有几个清单:
audcad = ["audcad",0,0,0,0,0,0,0,0,0,0,0,0,0]
audchf = ["audchf",0,0,0,0,0,0,0,0,0,0,0,0,0]
audjpy = ["audjpy",0,0,0,0,0,0,0,0,0,0,0,0,0]
ccys = ["audcad", "audchf", "audjpy"]
以下代码应阐明我的意图:
for ccy in ccys:
ccy[13] += 10
应导致:
audcad = ["audcad",0,0,0,0,0,0,0,0,0,0,0,0,10]
audchf = ["audchf",0,0,0,0,0,0,0,0,0,0,0,0,10]
audjpy = ["audjpy",0,0,0,0,0,0,0,0,0,0,0,0,10]
因为我正在使用字符串对象引用:
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
IndexError: string index out of range
我不想为此使用numpy,因为我要部署到一个我希望尽可能少安装的服务器上,所以代码需要尽可能的pythonic。如何在任意列表上循环以填充和读取每个列表中的特定元素?你知道吗
我认为像数组列表这样的2D对象可能是更好的解决方案,但是我仍然需要如何迭代对象,而不必使用大型if语句和单独的数组名称列表(请注意hacky SA)。你知道吗
如果出于某种原因,您实际上必须使用字符串,则可以使用局部变量:
如果您想通过名称进行访问,那么您可能是一个很好的例子,可以从列表中创建一个dict,使用第一个元素作为名称:
当你这样做的时候-
您将字符串(如
"audcad"
)放入列表中,而不是将列表放入ccys
列表中。把名单放在那里你应该-列表
ccys
应该包含其他列表变量本身(浅表副本),而不是字符串形式的名称那么你的代码就可以正常工作了
相关问题 更多 >
编程相关推荐