从列表中删除特定项目及其在 Python 中的所有重复项

我想从列表中删除一个特定元素及其所有重复项(不删除其他元素的重复项),我可以使用多个 for 循环手动完成,但请建议任何内置函数(如果存在)。


l1 = [some elements with duplicates]

for i in l1

  count = count.l1(i)# Counted duplicates of i

  #some stuff with count

  ## here want to delete the element at the ith position with all its duplicates


例如,我有一个列表 [2,3,4,6,2,4,3,2] # 这可能是未知的 我计算了 2 的重复项并删除了 2 及其所有重复项 duplicate_count_of_i=3,一些东西,删除具有所有重复项的元素已更新列表 [3,4,6,4,3] 谢谢您的宝贵时间,祝您有愉快的一天。


翻阅古今
浏览 92回答 3
3回答

海绵宝宝撒

如果您只想要独特的元素,请使用集合:l1 = [some elements with duplicates] # [1, 2, 3, 1, 2]l1 = list(set(l1))                   # [1, 2, 3]但是如果你想完全删除重复的元素,你可以这样做l1 = [some elements with duplicates]            # [1, 2, 3, 1, 2]l1 = [elt for elt in l1 if l1.count(elt) == 1]  # [3]

慕容森

我无法完全理解“列表中的特定项目及其所有副本”是什么意思。i) 你是指该项目的所有出现 ii) 还是该项目的所有重复项对于案例 1:您可以使用 while 循环从列表中删除元素的所有实例。>>> l1 =  [1,2,3,3,4,4,5,5,5,6,6]    >>> element_to_remove = 5>>>>>> while element_to_remove in l1:...    l1.remove(element_to_remove)>>> l1[1,2,3,3,4,4,6,6]对于案例 2:>>> l1 =  [1,2,3,3,4,4,5,5,5,6,6]    >>> element_to_remove = 5>>>>>> while l1.count(element_to_remove) > 1: #removing all the duplicates...    l1.remove(element_to_remove)>>> l1[1,2,3,3,4,4,5,6,6]

陪伴而非守候

使用Python 集来完成这项工作。它永远不会在您的列表中使用任何重复的项目。然后你可以将它转换为列表代码l1 = ["apple", "banana", "apple"]li2 = list(set(l1))print(li2)# >>> ['banana', 'apple']
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python