【发布时间】:2018-10-04 22:11:16
【问题描述】:
所以任务是: 取 2 个列表并编写一个程序,该程序返回一个列表,该列表仅包含列表共有的元素而没有重复项,并且它必须适用于不同大小的列表。
我的代码是:
a = [1, 2, 4]
b = [3, 1, 5, 2]
for j < len(a):
for i < len(b):
if a(elem) == b(i):
print (a(elem))
i=i+1
j=j+1
然后会生成一个无限循环,它会打印 1 然后永远不会退出。
谁能告诉我为什么会发生无限循环?
我知道这不是最“python”的做事方式,但是我的编码背景包括一个非常小的 C 语言技术,我对 Python 了解不多。
如果有简单的替代方案,请告诉我,以及为什么它永远不会退出。
【问题讨论】:
-
我在这里看不到列表理解。这运行?
for j < len(a):看起来不像是有效的语法。 -
这是完全无效的 Python 语法,你是如何执行这个脚本的?
-
反正解决方案是
list(set(a).intersection(b)) -
另外,
a和b都不可调用,因此代码甚至不应该运行,更不用说进入无限循环了。 -
@Carcigenicate 他们说列表比较,但是是的,除非问题被编辑,否则投票结束
标签: python python-3.x list linked-list infinite-loop