在Python中,清除列表中的重复元素可以通过以下几种方法:
1. 使用 `set` 函数:
my_list = [1, 2, 3, 3, 4, 5, 5, 6]
my_list = list(set(my_list))
print(my_list) 输出:[1, 2, 3, 4, 5, 6]
2. 使用字典的 `keys`:
alist = [1, 1, 2, 2, 3, 3, 3, 4, 5, 6, 6]
b = {}
b = b.fromkeys(alist)
alist = list(b.keys())
print(alist) 输出:[1, 2, 3, 4, 5, 6]
3. 使用列表的 `count` 函数:
alist = [1, 1, 2, 2, 3, 4, 5, 5, 6, 6, 6, 7, 8, 9, 9, 9]
i = 0
while i < len(alist):
if alist.count(alist[i]) != 1:
alist.pop(i)
else:
i += 1
print(alist) 输出:[1, 2, 3, 4, 5, 6, 7, 8, 9]
4. 排序后删除重复元素:
def deleteDuplicatedElementFromList(lst):
lst.sort()
length = len(lst)
lastItem = lst[length - 1]
for i in range(length - 2, -1, -1):
currentItem = lst[i]
if currentItem == lastItem:
lst.remove(currentItem)
else:
lastItem = currentItem
return lst
listA = ['python', '语', '言', '是', '一', '门', '动', '态', '语', '言']
print(deleteDuplicatedElementFromList(listA)) 输出:['python', '语', '言', '是', '一', '门', '动', '态']
5. 使用列表解析式:
test_list = [1, 3, 5, 6, 3, 5, 6, 1]
res = [i for i in test_list if i not in res]
print(res) 输出:[1, 3, 5, 6]
以上方法都可以有效地去除列表中的重复元素。选择哪一种方法取决于你的具体需求和列表的特性。需要注意的是,使用 `set` 函数会丢失原始列表的顺序,而排序方法会改变列表中元素的顺序。如果你需要保持元素的原始顺序,你可能需要使用其他方法,如使用字典的 `keys` 或者列表解析式