溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python集合和列表推導式哪個去重速度快

發(fā)布時間:2020-12-08 14:51:46 來源:億速云 閱讀:300 作者:小新 欄目:編程語言

這篇文章主要介紹python集合和列表推導式哪個去重速度快,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

先講講set(集合)的使用,大括號或 set() 函數(shù)可以用來創(chuàng)建集合。set集合類需要的參數(shù)必須是迭代器類型的,如:序列、字典等,然后轉(zhuǎn)換成無序不重復的元素集。由于集合是不重復的,所以可以對字符串、列表、元組進行去重操作。 

集合是從列表(list)中刪除重復值的最快的方法。為了證明這一點,讓我們研究以下兩種方法之間的差異。

方法 1:使用集合刪除列表中的重復值。

print(list(set([1, 2, 3, 1, 7])))

方法 2:使用一個列表推導式(list comprehension)從一個列表中刪除重復值。

def remove_duplicates(original):
    unique = []
    [unique.append(n) for n in original if n not in unique]
    return(unique)
 
print(remove_duplicates([1, 2, 3, 1, 7]))

性能的差異可以用「timeit」庫來測量,這個庫允許你對 Python 代碼進行計時。下面的代碼將每種方法運行了 10,000 次,并且以秒為單位輸出了總計時間。

import timeit
 
# Approach 1: Execution time
print(timeit.timeit('list(set([1, 2, 3, 1, 7]))', number=10000))
 
# Approach 2: Execution time
print(timeit.timeit('remove_duplicates([1, 2, 3, 1, 7])', globals=globals(), number=10000))

對比這兩種方法,結(jié)果表明,使用集合刪除重復值是更加高效的。雖然時間差異看似很小,但實際上在有一個非常大的列表時,能幫你節(jié)省很多的時間。

以上是“python集合和列表推導式哪個去重速度快”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關知識,歡迎關注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI