python实现给定一个列表判断里面是否有重复元素

发布网友 发布时间:2022-04-20 16:11

我来回答

4个回答

热心网友 时间:2022-04-06 06:57

有两个方法:

使用列表的count方法,因为count方法可以做对象内的元素进行出现次数叠加计算

list1=[1,2,3,4,4,5,6,7]
list1.count(1)  #结果为1
list1.count(4)  #结果为2
for i in list1:
    if list1.count(i)>=2:
        print('该元素%s重复'%i)
#结果:
该元素4重复
该元素4重复    #因为迭代了两次4所以有两次输出,功能是实现了,但是却打印了两次,有点不理想

2.借用工厂函数set()把对象转为集合和列表的copy方法(浅复制),集合会默认把重复元素去掉

list1=[1,2,3,4,4,5,6,7]
list2=list1.copy()  #为了不破坏原数据,临时浅复制给变量list2
list3=list(set(list2))  #使用set()函数将list2转为集合去掉重复元素又用list()转回列表 
for i in list3:  #对无重复元素的列表list3迭代
    if i in list2: 
        list1.remove(i) #当list3内的元素存在于list2中,则把其元素从list2中删除,最后就会留下重复元素
print('list1:%s中的重复元素有:%s'%(list1,list2)) #组后输出原数据list1和最终结果list2
#结果:
list1:[1, 2, 3, 4, 4, 5, 6, 7]中的重复元素有:[4]    
#效果实现了,也没问题,就是变量使用有点多。看你选择了

热心网友 时间:2022-04-06 08:15

num_list=[1,2,3,4,6,7,8,4,5,6,6,6]  
if len(num_list)!=len(set(num_list)):  
    print('有重复!!!')
else:  
    print('没有重复!' )

热心网友 时间:2022-04-06 09:50

def test(ls):
for i in ls:
if i in ls2:
return True#如果有相同元素,返回True
break
else:
return False#循环完之后发现没有相同元素,返回False
ls = ['physics', 'chemistry', 1997, 2000]
ls2 = [1, 2, 3, 4, 5, 6, 2000 ]
a = test(ls)#用a接收返回的值
print(a)

热心网友 时间:2022-04-06 11:41


list1=[1,2,3,4,4,5,6,7]list1.count(1)  #结果为1list1.count(4)  #结果为2for i in list1:    if list1.count(i)>=2:        print('该元素%s重复'%i

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com