Как добавить слово в небольшой список значений - PullRequest
0 голосов
/ 30 апреля 2020
list=["Book","Glass","Book,"Watch","Doll,"Book"]
def a_list(list)

вывод:

The List is:
Book
Glass
Book
Watch
Doll
Book

Список после проверки:

Book
Glass unique
Book
Watch unique
Doll unique
Book

Ответы [ 2 ]

2 голосов
/ 30 апреля 2020

Вы можете просто использовать collections.Counter для обнаружения уникальных предметов, количество которых не превышает 1.

from collections import Counter

lst=["Book","Glass","Book","Watch","Doll","Book"]

def a_list(items):

    # Count the words
    counts = Counter(items)

    for item in items:

        # Found a non-unique item, don't add "unique" to it
        if counts[item] > 1:
            print(item)

        # Found a unique item, add "unique" to it
        else:
            print(item, "unique")

a_list(lst)

Вывод:

Book
Glass unique
Book
Watch unique
Doll unique
Book

Мы также можем добавить эти элементы в новый список и вернуть его также:

def a_list(items):
    counts = Counter(items)

    result = []
    for item in items:
        if counts[item] > 1:
            result.append(item)
        else:
            result.append(f"{item} unique")

    return result

print(a_list(lst))

Или используя понимание списка :

def a_list(items):
    counts = Counter(items)
    return [item if counts[item] > 1 else f"{item} unique" for item in items]

print(a_list(lst))

Выход:

['Book', 'Glass unique', 'Book', 'Watch unique', 'Doll unique', 'Book']
2 голосов
/ 30 апреля 2020

Простой способ сделать это:

ll=["Book","Glass","Book","Watch","Doll","Book"]
def a_list(l):
    for elem in l:
        if l.count(elem) > 1:
            print(elem)
        else:
            print(elem, "unique")

a_list(ll)

Это даст желаемый результат.

Если вы хотите изменить список и вернуть его, те же логики c следует использовать, но вместо печати вы должны изменить сам элемент следующим образом:

ll=["Book","Glass","Book","Watch","Doll","Book"]
def a_list(l):
    for i, elem in enumerate(l):
        if l.count(elem) > 1:
            l[i] = "{:} unique".format(elem)
    return l

lll = a_list(ll)
print(lll)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...