Python判斷列表裡是否有重複元素的三種方法

2021-09-20 15:30:09 字數 1237 閱讀 7580

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('列表裡有重複的元素!')

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

new_list=

for i in lst:

if i not in new_list:

#這樣能確保新的列表裡包含原列表裡所有種類的元素,且元素互不重複

if len(new_list)==len(lst):

print('原列表裡的元素互不重複!')

else:

print('原列表裡有重複的元素!')

我們只需要判斷有無重複元素,並不需要得到去重後的元素,因此上面的**顯得有些多餘。下面是我的改良版本(2023年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('原列表裡沒有重複的元素!')

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

dic={}.fromkeys(lst)

#這種方法建立字典,會把列表裡的元素當做字典的鍵,由於字典的鍵不能重複,所以會自動去重

if len(dic)==len(lst):

print('列表裡的元素互不重複!')

else:

print('列表裡有重複的元素!')

Python判斷列表裡是否有重複元素的三種方法

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 列表裡有重複的元素!lst 1,3,5,8,9,9...

如何判斷單鏈表裡面是否有環?

如何判斷單鏈表裡面是否有環?演算法的思想是設定兩個指標p,q,其中p每次向前移動一步,q每次向前移動兩步。那麼如果單鏈表存在環,則p和q相遇 否則q將首先遇到null。這裡主要理解乙個問題,就是為什麼當單鏈表存在環時,p和q一定會相遇呢?假定單鏈表的長度為n,並且該單鏈表是環狀的,那麼第i次迭代時,...

如何判斷單鏈表裡面是否有環?

如何判斷單鏈表裡面是否有環?演算法的思想是設定兩個指標p,q,其中p每次向前移動一步,q每次向前移動兩步。那麼如果單鏈表存在環,則p和q相遇 否則q將首先遇到null。這裡主要理解乙個問題,就是為什麼當單鏈表存在環時,p和q一定會相遇呢?假定單鏈表的長度為n,並且該單鏈表是環狀的,那麼第i次迭代時,...