Skip to main content
 首页 » 编程设计

Python 列表 : How can I search for another element or duplicate item in a list

2025年05月04日12mengfanrong

我有一个列表说 p = [1,2,3,4,2] 如果 bool 值包含仅使用查找、索引、切片、len() 等方法而不是字典、元组等的重复项,是否有返回 bool 值 True 的方法。

我使用了这段代码:

for e in p:  
   duplicate = p.find(e, e+1)  
   if duplicate in p:  
       return True 

请您参考如下方法:

这里是简单的方法:

return len(p) != len(set(p)) 

不使用 set 的低效方式:

for i in range(len(p)): 
   if p[i] in p[i+1:]: 
      return True 
return False 

第二种方法不是很惯用,但是除了最基本的语言特性(包括元组)之外,它避免了所有特性。

还有一种方法:

while p: 
   e = p.pop() 
   if e in p: 
      return True 
return False 

这很简单,但确实修改了列表。

我要演示的最后一种方法是:

s = sorted(p) 
for i in range(1, len(s)): 
   if s[i] == s[i - 1]: 
      return True 
return False 

这通过对 p 进行排序然后比较每对连续元素来实现。