Python代碼實(shí)現(xiàn)找到列表中的奇偶異常項(xiàng)
本篇閱讀的代碼片段來(lái)自于30-seconds-of-python。
1.find_parity_outliers
from collections import Counter def find_parity_outliers(nums): return [ x for x in nums if x % 2 != Counter([n % 2 for n in nums]).most_common()[0][0] ] # EXAMPLES find_parity_outliers([1, 2, 3, 4, 6]) # [1, 3]
find_parity_outliers
函數(shù)接收一個(gè)列表,并返回列表中的奇偶異常項(xiàng)。奇偶異常項(xiàng)指的是和列表中大多數(shù)項(xiàng)奇偶性質(zhì)不同的項(xiàng)。函數(shù)使用列表推導(dǎo)式來(lái)逐個(gè)檢查輸入列表中的每一項(xiàng)是否為奇偶異常項(xiàng)。Counter
中使用列表推導(dǎo)式和取余操作(% 2)逐個(gè)提取其輸入列表每項(xiàng)的奇偶性質(zhì)。使用collections.Counter.most_common()
來(lái)獲取列表中最常見(jiàn)的奇偶性。
2.class collections.Counter([iterable-or-mapping])
Counter是一個(gè)dict的子類(lèi),用于計(jì)數(shù)可哈希對(duì)象。它是一個(gè)集合,元素像字典鍵(key)一樣存儲(chǔ),它們的計(jì)數(shù)存儲(chǔ)為值。計(jì)數(shù)可以是任何整數(shù)值,包括0和負(fù)數(shù)。most_common([n])
是Counter
提供的一個(gè)方法,該方法
返回一個(gè)列表,其中包含n個(gè)最常見(jiàn)的元素及出現(xiàn)次數(shù),按常見(jiàn)程度由高到低排序。 如果n被省略或?yàn)镹one,most_common()將返回計(jì)數(shù)器中的所有元素。 計(jì)數(shù)值相等的元素按首次出現(xiàn)的順序排序。
>>> from collections import Counter >>> Counter('abracadabra').most_common(3) [('a', 5), ('b', 2), ('r', 2)]
[0][0]是在結(jié)果列表里面定位元素,會(huì)把最常出現(xiàn)的元素提取出來(lái)。
>>> Counter('abracadabra').most_common(3)[0][0] 'a'
到此這篇關(guān)于Python代碼實(shí)現(xiàn)找到列表中的奇偶異常項(xiàng)的文章就介紹到這了,更多相關(guān)Python找到列表中的奇偶異常項(xiàng)內(nèi)容請(qǐng)搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。