Функция для возврата количества пар элементов в списке ввода - PullRequest
0 голосов
/ 20 января 2020

Я пытаюсь написать функцию для подсчета количества пар каждого цвета для данного списка в качестве входных данных. Я пытался получить этот вывод, но я не знаю, как определить пары в списке.

Ввод:

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

Ввод:

1 pair of red, 1 pair of blue

1 Ответ

1 голос
/ 20 января 2020

Один из подходов заключается в использовании 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
...