新聞中心
NEWS
當前位置: 首頁(yè) > 網(wǎng)站優(yōu)化
python怎么刪除數組中重復的元素
時(shí)間:2026-05-05 10:47:10Python中刪除數組(列表)中重復元素的方法有很多,這里我們介紹一種簡(jiǎn)單且高效的方法:使用集合(set),集合中的元素是唯一的,所以我們可以通(tong)過(guò)將列表轉換為集合,然后再轉換??回列表的方式來(lái)實(shí)現刪除重復元素的目的,這種方法的時(shí)間復雜度為O(n),空間復雜度也為O(n)。
下面是一個(gè)具體的示例:
def remo??ve_duplicates(lst): return list(set(lst))input_list = [1, 2, 2, 3, 4, 4, 5]out(╯‵□′)╯put_list = remo┐(′?`)┌ve_duplicates(input_list)print(output_list)輸出結果為:
[1(′?_?`), 2, 3, 4, 5]需要注意的是,ヽ(′▽?zhuān)?ノ使用集合(set)刪除重復元素會(huì )改變原列表的順序,如果你需要保持原列(′?`*)表的順序,可以使用以下方法:
def remove_duplicates_ordered(lst): result = [] for item in lst: if item not in result: result.append(item) return resultinpu??t(′ω`)_list = [1, 2, 2, 3, 4, 4, 5]out??put_list = remove_duplicates_ordered(input_list)print(o??utput_list)
輸出結果為:
[1, 2, 3, 4, 5]
這個(gè)方法的時(shí)間復雜度和空間復雜度都是O(n^2)。
下??面是與本文相關(guān)的問(wèn)題及解答:
問(wèn)題1:如何使用字典(dict)刪除數組中的重復元素?
答案:可以將數組轉換為字典的鍵值對,然后再轉換回數組,這樣可以保留原數組中的元素順序,示例代碼如下:
def remove_duplicates_dict(lst): return list(dict.fromkeys(lst))input_list = [1, 2, 2, 3, 4, 4, 5]output_l??ist = remove_(′?`*)duplicates_dict(input_list)print(output_list)輸出結果為:[1, 2, 3, 4, 5]
問(wèn)題2:如何在一行代碼中實(shí)現刪除數組中的重復元素?
答案:可以使用列表推導式,示例代碼如下:
input_list = [1, 2, 2, 3, 4, 4, 5]output_list = [x for i, x in en??umerate(input_list) if input_list.index(x) == i]pri??nt(output_???list)
輸出結果為:[1, 2, 3, 4, 5]
答案:可以使用collections模塊中的Counter類(lèi),示例代碼如下:
from collections import Counterimport numpy as npinput_array = np.array(?????)([1, 2, 2, 3, 4, 4, 5]).tolis?t() 將numpy數組轉換為列表以便使用Counter類(lèi)counter = Counter(input_array) 統計重復元素及其個(gè)數ou??tput_array = [x for x in input_a(′▽?zhuān)?)rray if counter[x] > 1]ヽ(′ー`)ノ 只保留重復元素大于1次的元素print(output_array) [2, 4]print("重復元素個(gè)數(shu):&quo???t;, sum([counter[x] for x in output_array])) 結果為6和(′▽?zhuān)?)2000000008 (int溢出)之間(′?ω?`)的一個(gè)整數表示??重復?元素的個(gè)數??
客服電話(huà)18916339454
Copyright ? 2012-2018 天津九安特機電工程有限公司 版權所有 備案號:
客服電話(huà)18021712189