为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

翻阅古今 2023-03-22 17:15:00
我想从列表中删除一个特定元素及其所有重复项(不删除其他元素的重复项),我可以使用多个 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] 谢谢您的宝贵时间,祝您有愉快的一天。
查看完整描述

3 回答

?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

如果您只想要独特的元素,请使用集合:


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]


查看完整回答
反对 回复 2023-03-22
?
慕容森

TA贡献1853条经验 获得超18个赞

我无法完全理解“列表中的特定项目及其所有副本”是什么意思。


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]


查看完整回答
反对 回复 2023-03-22
?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

使用Python 集来完成这项工作。它永远不会在您的列表中使用任何重复的项目。然后你可以将它转换为列表

代码

l1 = ["apple", "banana", "apple"]

li2 = list(set(l1))


print(li2)


# >>> ['banana', 'apple']


查看完整回答
反对 回复 2023-03-22
  • 3 回答
  • 0 关注
  • 84 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信