python - 如何修复列表索引超出范围错误?
问题描述
我从下面的代码中收到“列表索引超出范围”错误。代码的目的是确定两个列表中都存在的值。我知道编写此代码可能有更简洁的方法,但这是我的解决方案,我想知道是否可以这样做。
我尝试从数组的长度中减去一个(在“for”范围内),看看这是否是问题所在,但它仍然返回相同的错误。
a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
b = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
n = 0
n2 = 0
for n1 in range(0, len(a)-1):
for n2 in range(0, len(b)-1):
if a[n1] == b[n2]:
print(a[n1])
n2 += 1
else:
n2 += 1
n1 += 1
如果代码正常工作,它将打印数字:1、1、2、3、5、8 和 13。
解决方案
我假设您来自 Java 之类的语言,您主要通过访问索引处的元素来迭代列表或数组。
在 Python 中,您可以迭代列表的元素。所以在你的情况下,你可以写类似
for n1 in a:
for n2 in b:
if n1 == n2:
print(n1)
...
推荐阅读
- javascript - React Native 倒数计时器减少了文本输入焦点
- json - 更改 minecraft 版本的显示名称
- javascript - Next JS API Routes 在客户端添加查询
- typescript - 预期的参数,但在 TypeScript 的扩展类调用中得到 0
- windows - Visual Studio:错误 DEP0700:应用注册失败。[0x80073D1F]
- javascript - 如何减去特定的部分时间javascript momentjs
- wordpress - 如何存储多个用户条目
- c# - c#中类型或成员的声明顺序
- javascript - 如何获取用户单击的按钮的 ID?
- python - 每次运行(使用 pytorch+cuda)在批量标准化时都是不同的,即使是在 RNG 播种的情况下