作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我发现对这个问题的所有回答要么是短路的,要么不是纯粹的 pythonic。
如果我有多个列表:
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。我如何遍历任意列表以填充和读取每个列表中的特定元素?
我认为像数组列表这样的二维对象可能是更好的解决方案,但我仍然需要如何迭代对象而不必使用大型 if 语句和单独的数组名称列表(发现 hacky SA)。
最佳答案
你的列表 ccys
应该包含其他列表变量本身(作为浅拷贝),而不是它们作为字符串的名称
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]
关于python - 如何在 Python 中引用/迭代多个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31941020/
我是一名优秀的程序员,十分优秀!