我在 codecademy 上学习 Python 并遇到了这个解决方案,该功能旨在从数字列表中删除重复项:
x = [1, 1, 2, 2]
def remove_duplicates(x):
p = []
for i in x:
if i != i:
p.append(i)
return i
我在 pycharm 中使用一些 print 语句运行它,得到一个空列表。我只是好奇,因为当我在脑海中这样做时,它没有任何意义,但 codecademy 接受这个作为答案。难道只是侥幸?或者这是我还不明白的水平?
最佳答案
你是对的:它没有任何意义。首先,它创建一个名为 p
的列表,该列表获取不等于自身的每个项目。据我所知,唯一不等于自身的对象是 NaN,但您没有这些,所以 p
只是一个空列表。然而,定义 p
是没有用的,因为它甚至没有被返回。返回的是i
,它被赋值给最后的每一项,所以它是函数结束时列表中的最后一项。简而言之,该函数等同于:
def remove_duplicates(x):
return x[-1]
我还没有听说该函数应该返回什么,但也许它应该返回非重复项目的数量。如果是,它“起作用”只是因为列表中的最后一项恰好是非重复项的数量。
关于python - 这有效,但为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38987146/