【发布时间】:2020-10-09 03:41:26
【问题描述】:
我正在解决一个问题,我得到一个重复数字列表,我必须从初始列表中返回一个包含所有唯一值的新列表。
这是我的解决方案:
new_list = [1,1,1,1,2,2,3,3,3,3,4,5]
updated_lst = []
for i in range(0,len(new_list)-1):
if new_list[i] != new_list[i+1]:
updated_lst.append(new_list[i])
print(updated_lst)
输出:[1, 2, 3, 4] 但它缺少 new_list 中的 5。
另外,我是 python 新手,知道我可以做类似的事情
updated_list = []
for i in new_list:
if i not in updated_list[]:
updated_list.append(i)
但我想知道如何使我的初始解决方案发挥作用。
非常感谢
【问题讨论】:
-
如果最后一项不等于倒数第二项,我将在 for 循环之后添加一个检查,如果是,则附加它。最后一项只是一种特殊情况,不能像其他情况一样处理。
-
您的清单是否保证井然有序?因为如果数字乱序,您的算法将无法正常工作(考虑
[1, 2, 1])。对于您正在使用的算法,您应该始终在输入列表中包含最后一项。
标签: python list function loops iteration