Python代碼實現找到列表中的奇偶異常項

本篇閱讀的代碼片段來自於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函數接收一個列表,並返回列表中的奇偶異常項。奇偶異常項指的是和列表中大多數項奇偶性質不同的項。函數使用列表推導式來逐個檢查輸入列表中的每一項是否為奇偶異常項。Counter中使用列表推導式和取餘操作(% 2)逐個提取其輸入列表每項的奇偶性質。使用collections.Counter.most_common()來獲取列表中最常見的奇偶性。

2.class collections.Counter([iterable-or-mapping])

Counter是一個dict的子類,用於計數可哈希對象。它是一個集合,元素像字典鍵(key)一樣存儲,它們的計數存儲為值。計數可以是任何整數值,包括0和負數。most_common([n])Counter提供的一個方法,該方法

返回一個列表,其中包含n個最常見的元素及出現次數,按常見程度由高到低排序。 如果n被省略或為None,most_common()將返回計數器中的所有元素。 計數值相等的元素按首次出現的順序排序。

>>> from collections import Counter
>>> Counter('abracadabra').most_common(3)
[('a', 5), ('b', 2), ('r', 2)]


[0][0]是在結果列表裡面定位元素,會把最常出現的元素提取出來。

>>> Counter('abracadabra').most_common(3)[0][0]
'a'

到此這篇關於Python代碼實現找到列表中的奇偶異常項的文章就介紹到這瞭,更多相關Python找到列表中的奇偶異常項內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: