return 输入列表中项目对数的函数

Function to return number of pairs of items within input list

我正在尝试编写一个函数来计算给定列表中每种颜色的对数作为输入。我试图获得此输出,但我不知道如何识别列表中的对。

输入:

['red','yellow','blue','blue','red','blue']

输出:

1 pair of red, 1 pair of blue

一种方法是使用 collections.Counter

代码:

from collections import Counter

def find_pairs(socks):
    c = Counter(socks)
    pairs = dict()
    for k, v in c.items():
        if v >= 2:
            pairs[k] = v//2
    return pairs

socks = ['red','yellow','blue','blue','red','blue']

pairs = find_pairs(socks)

for colour, num_pairs in pairs.items():
    print(f"{num_pairs} pairs of {colour}")

输出:

1 pairs of red
1 pairs of blue