acokikoy's notes

{"勉強中":"Python","注目":"Shopify","LOVE♡":["ABARTH595","TA-GG9","Ukulele","Movable Type","ガーナ ミルクチョコレート"]} なWebディレクター

毎朝Codewars@2019.07.24(水): Find all pairs

毎朝ちびちびCodewars。
記事が下書きのままずっと放置されていたのを、遅ればせながら公開しました。

[7 kyu] Find all pairs www.codewars.com

今日のお題:

"""与えられる整数のリストに、同じ数値のペアが何組あるか数える

例:
[] --> 0 (空リスト)
[0, 0, 0, 0] --> 2 (0のペアが2こ)
[1, 2, 5, 6, 5, 2]  -->  2 (2と5のペア)
[1, 2, 2, 20, 6, 20, 2, 6, 2]  -->  4 (2のペア2こ, 6と20のペアが1こずつ) 

def duplicates(arr):
Args:  
    arr (list):  リストの各要素は整数1コ
Returns:  
    同じ数値のペア数 (int): 
 
"""

コード

# [7 kyu] Find all pairs
# https://www.codewars.com/kata/find-all-pairs-1/

import collections

def duplicates(arr):
    return sum(n//2 for n in collections.Counter(arr).values())
  • collenctions.Counter(arr)で各要素の個数を取得する。2で切り捨て除算した結果の合計がペア数。