如何解决在 Python 中,如何在序列中查找重复项并将它们收集到列表中?
我无法回答 How do I find the duplicates in a list and create another list with them?,但我认为我的解决方案值得。所以,我会概括这个问题,并对反馈感到高兴。
如何回答这个列表的问题:
a = [1,2,1,3,]
解决方法
很简单:
have = []
duplicates = []
for item in a:
if item not in have:
have.append(item)
else:
if item not in duplicates:
duplicates append(item)
else 之后的条件只是确保列表重复项仅获得重复项的一次
,我不确定你的问题到底是什么。但是如果你想比较两个列表并将相似之处放在一个列表中,你可以这样做:
a = [1,2,1,3]
b = [1,5,6,3]
c = []
for item in a:
if item in b:
c.append(item)
,
Python 中的序列类型具有 in
运算符,请参阅 docs 。您必须逐步完成整个序列,但您只需回顾一下您已经看到的内容...
a = [1,3,]
# collect duplicates of a and their positions
dups = []
for idx,item in enumerate(a):
... if idx > 0:
... if item in a[:idx - 1]:
... dup = (f"Index: {idx}",item)
... dups.append(dup)
...
dups
[('Index: 2',1),('Index: 3',('Index: 4',2)]
如果不太可能出现重复项,您可以先使用 set() 来确定是否存在重复项 len(set(a)) != len(a)
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。