Python判断列表里是否有重复元素的三种方法

一、用set方法去重后与原列表长度比较

lst=[1,3,5,3,4,4,2,9,6,7]
set_lst=set(lst)
#set会生成一个元素无序且不重复的可迭代对象,也就是我们常说的去重
if len(set_lst)==len(lst):
    print('列表里的元素互不重复!')
else:
    print('列表里有重复的元素!')

二、用append的方式把原列表中的元素添加到一个新列表,确保新列表里不存在重复的元素,然后比较两个列表

lst=[1,3,5,8,9,9,0,0,3,3]
new_list=[]

for i in lst:
    if i not in new_list:
        new_list.append(i)
        #这样能确保新的列表里包含原列表里所有种类的元素,且元素互不重复

if len(new_list)==len(lst):
    print('原列表里的元素互不重复!')
else:
    print('原列表里有重复的元素!')

我们只需要判断有无重复元素,并不需要得到去重后的元素,因此上面的代码显得有些多余。下面是我的改良版本(2021年7月15日补充):

 

lst=[1,3,5,8,9,9,0,0,3,3]

# False表示没有重复,我们先假设没有重复的元素
flag = False
length = len(lst)
for i in range(length):
    # 这里是检查第i个元素是否跟第0到第i-1个元素中的某个重复
    for j in range(i):
        # 发现了一个重复的元素,就可以修改flag的状态
        # 并且后面的元素没有检查的必要了
        if lst[i] == lst[j]:
            flag = True
            break
    if flag:
        break

if flag:
    print('原列表里有重复的元素!')
else:
    print('原列表里没有重复的元素!')

三、用fromkeys的方法创建一个字典,因为字典的键会自动去重,所以可以比较字典和原列表的长度,跟方法一很像

lst=[1,3,5,8,9,9,0,0]
dic={}.fromkeys(lst)
#这种方法建立字典,会把列表里的元素当做字典的键,由于字典的键不能重复,所以会自动去重
if len(dic)==len(lst):
    print('列表里的元素互不重复!')
else:
    print('列表里有重复的元素!')

如果这篇博文帮到了你,就请给我点个吧(#^.^#)

有疑问也欢迎留言~博主可nice啦,在线秒回ヾ(◍°∇°◍)ノ゙

  • 119
    点赞
  • 247
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值