python統計重復的list
❶ python判斷列表中是否有重復元素
舉個栗子:
原數組長度,與去重後的數據,判斷長度,長度相等,則證明無重復項,不相等就說明有重復項
str=[1,2,3,4,5]
iflen(str)==len(set(str)):
print"nomp"
else:
print"mp"
❷ python 如何找出兩個list中的相同元素
這個問題有多種解法,最常見的是brute-force 也叫暴力枚舉法,也就是把兩個list當中的每個元素都取出來進行兩兩比較,直到找到相同元素。設第一個數組的長度為n,第二個數胡兆組的長度為m,則時間復雜度為O(n*m),空間復雜度為O(1)
但是個問題陵穗常見的解決方法是哈希表。在Python當中有Dictionary這種數據類型,其實是一個哈希表。運用這種數據類型,可以迅速檢索到想要的元素。但這種方法需要存儲一組元素,所以時間復雜度為O(n),空間復雜度為O(m)。
以下是程序:
def find_same_element(l1, l2):
dist = {}
for i in l1:
dist[i] = 1
for i in l2:
if dist.get(i) > None:
return i
return None
以下是檢驗
l1 = [1, 2, '34', 34, 5]
l2 = [4, 7, 8]
print find_same_element(l1, l2)
應當輸出None
l1 = [1, 2, '34', 34, 5]
l2 = [4, 7, 8,5]
print find_same_element(l1, l2)
應當輸出5
這個函數只能找尺做卜到一個共同元素,如果兩個list有多個相同元素則只能輸出中間的一個。
這個問題常見於面試題,屬於最簡單的面試題目。需要給面試官說明的是,
第一,哈希表可以快速檢索元素,
第二,python有獨特的數據類型,
第三,多個共同元素的情況需要面試官告知如何處理,
第四,注意沒有共同元素的時候的輸出(程序中為None但面試官希望你能提出這個問題)
❸ python找出列表元素重復個數和重復值
輸出列表元素重復個數
def get_element(data):
dic = {}
i = 0
while i < len(data):
if data[i] in dic:
""滲搜"
循迅散環查找列表元素,如果一個元素出現一次,value就等於1,多次出現,value就增加
"畝喊氏""
dic[data[i]] += 1
else:
dic[data[i]] = 1
i += 1
for j, k in dic.items():
if k > 1:
print('data數組中重復的元素有%d,它的個數是%d個'%(j,k))
print(dic)
my_list =[1,2,3,4,2,4,2,3,4,5,6,23,23,32]
get_element(my_list)
❹ python 尋找兩個list 相同的元素
list1= ['0+1998', '1+1998', '2+1998', '3+1998']
list2 = ['1+1998', '2+1998']
list3 = [1 if i in list2 else 0 for i in list1]
print(list3)
❺ 如何找出 python list 中有重復的項
可以對第二個list的元素進行遍歷,檢查是否出現在第二個list當中,如果散和使用表理解,可以使用一行代碼完成任務。
list1 = [1,2,3,4,5]
list2 = [4,5,6,7,8]
print [l for l in list1 if l in list2]
# [4,5]
如果每一個列表中均沒有重復的元改掘漏素核爛,那麼還有另外一種更好的辦法。首先把兩個list轉換成set,然後對兩個set取交集,即可得到兩個list的重復元素。
set1 = set(list1)
set2 = set(list2)
print set1 & set 2
# {4,5}
❻ python如何統計元組中重復元素個數
#獲取重復元數的個數,使用set可以將list中重復元數去掉
temp_list = [1, 3, 2, 3, 2, 4]
repeat_count = len(temp_list) - len(set(temp_list))
❼ 如何用python實現兩個文件重復數據篩選並統計
本文實例展示了Python統計列表中的重復項出現的次數的方法,是一個很實用的功能,適合Python初學者學習借鑒。具體方法如下:
對一個列表,比如[1,2,2,2,2,3,3,3,4,4,4,4],現在我們需要統計這個列表裡的重復項,並且重復了幾次也要統計出來。
方法1:
?
1234
mylist = [1,2,2,2,2,3,3,3,4,4,4,4]myset = set(mylist) #myset是另外一個列表,裡面的內容是mylist裡面的無重復 項for item in myset: print("the %d has found %d" %(item,mylist.count(item)))
方法2:
?
123456
List=[1,2,2,2,2,3,3,3,4,4,4,4]a = {}for i in List: if List.count(i)>1: a[i] = List.count(i)print (a)
利用字典的特性來實現。
方法3:
?
123
>>> from collections import Counter>>> Counter([1,2,2,2,2,3,3,3,4,4,4,4])Counter({1: 5, 2: 3, 3: 2})
這里再增補一個只用列表實現的方法:
?
12345678910
l=[1,4,2,4,2,2,5,2,6,3,3,6,3,6,6,3,3,3,7,8,9,8,7,0,7,1,2,4,7,8,9] count_times = []for i in l : count_times.append(l.count(i)) m = max(count_times)n = l.index(m) print (l[n])
其實現原理就是把列表中的每一個數出現的次數在其對應的位置記錄下來,然後用max求出出現次數最多的位置。
只用這段代碼的話,有一個缺點,如果有多個結果,最後的現實的結果只是出現在最左邊的那一個,不過解決方法也很簡單
❽ python中list中怎麼刪除重復數據保留一條
可以先統計list中每個數據的個數,用一個dict存儲虧世碧,然後遍歷list,判斷是返脊否是最後一銷舉個,是的就從list中刪除即可
❾ python list 去重復
import
a = [{'a':12,'b':21},{'a':13,'b':22},{'a':14,'b':22},{'a':15,'b':23},{'a':16,'b':22}]
d = {}
for i in a:
d.setdefault(i['b'], 0)
d[i['b']] += 1
at = .(a)
for i in at:
if d[i['b']] > 1:
a.remove(i)
print a
先把b值統計一下。然後再一個比對,如果統計個數大於1,就從列表中移出。
❿ python list找出一個元素的位置(重復元素怎麼分別找出位置)
幾種方式的回答:
1)
print('*'*15,'想找出裡面有重復數據的索引值','*'*15)
listA = [100, 94, 88, 82, 76, 70, 64, 58, 52, 46, 40, 34,76]
print('列表中第1次出現的位置 = ',listA.index(76))
2)
a_list = ['a','b','c','c','d','c']
find = 'c'
print('重復元素出現的位置索引分別是 = ',[i for i,v in enumerate(a_list) if v==find])
-----------------------------------------------------
3)### 求某個元素重復的索引值,函數方式表述如下:
a_list = ['a','b','c','c','d','c']
def unique_index(L,f):
"""L表示列表, i表示索引值,v表示values,f表示要查找的元素 """
return [i for (i,v) in enumerate(L) if v==f]
print('索引值 = ',unique_index(a_list,'c'))
運行結果:
索引值 = [2, 3, 5]
4)還缺一種,列出多個元素重復的索引值,以後再補充
......