Вы можете просто использовать 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']