为什么这个功能导致:
哎呀,再试一次。 remove_duplicates([])导致错误:列表索引超出范围“?
我的功能如下
def remove_duplicates(listIn):
listSorted = sorted(listIn)
prevInt = listSorted[0]
listOut = []
listOut.append(prevInt)
for x in listSorted:
if (x != prevInt):
prevInt = x
listOut.append(x)
print listOut
return listOut
remove_duplicates([1,2,3,3,3])
输出:
[1, 2, 3]
None
谢谢。
答案 0 :(得分:1)
要回答您的问题,您需要检查列表的长度,如果是空的则返回
if not listIn:
return []
然而你的整个方法可以用这样的集合简化
def remove_duplicates(listIn):
return list(set(listIn))
输出:
>>> print remove_duplicates([1,2,3,3,3])
>>> [1, 2, 3]
当然这是假设您希望将数据保存在列表中...如果您不在乎,请删除外部list()
转换以使其更快。无论如何,这将是一个比你写的更快的方法