作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
def scan_for_match(T1, T2):
i = 0
j = 0
while i <= (len(T1)):
if T1[i] == T2[j]:
keywords = open('keywords.txt', 'w+')
keywords.write(T1.pop(i))
T2.pop(j)
if i > (len(T1)):
i = 0
j += 1
if j > (len(T2)):
print "All words have been scanned through"
print "These are the matches found:\n ", keywords.readlines()
i += 1
我认为这是一段非常简单的代码,但是......
T1 = ["me", "gusta", "espanol"]; T2 = ["si", "no", "espanol"]; scan_for_match(T1, T2)
只会给我:
Traceback (most recent call last):
File "stdin", line 1, in module
File "stdin", line 5, in scan_for_match
IndexError: list index out of range
有问题的行只是无害的 if T1[i] == T2[j]:
这对我来说没有意义,因为:
i = 0
j = 0
T1[i] = 'me'
T2[j] = 'si'
所以这应该只返回 False 结果而不是 IndexError,对吗?
最佳答案
while i <= (len(T1)):
错了,当i等于长度时,会出现IndexError,改成<
。索引从0开始到(长度 - 1)
我建议不要使用pop()
方法,它将从列表中删除元素,扫描匹配不需要删除匹配的元素,对吧? :)
或者,您可以通过以下方式找到匹配项:
>>> t2= ["si", "no", "espanol"]
>>> t1= ["me", "gusta", "espanol"]
>>> set(t2) & set(t1)
{'espanol'}
关于python - Python 上的不清楚索引错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38492045/
MVC3 中的助手是否在 Controller 和 View 中使用? 助手是放置常用 Controller 方法的正确位置吗? 我想创建一个通用方法来获取数据库中的所有子子 ID,并确保它位于正确的
有人可以阐明这两者之间的区别吗,因为它们存在于执行上下文中?我很难阅读 ECMA 262 v 5规范并清楚地看到差异。 谢谢你, 最佳答案 两者都是执行上下文的组件(相同类型),但它们有不同的用途(f
我是一名优秀的程序员,十分优秀!