2 回答

TA貢獻1871條經(jīng)驗 獲得超8個贊
您可以簡單地使用collections.Counter
來檢測計數(shù)不超過 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']

TA貢獻1853條經(jīng)驗 獲得超9個贊
一個簡單的方法是:
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)
這將提供所需的輸出。
如果你想改變列表并返回它,應該使用相同的邏輯,但你應該改變元素本身,而不是打印,如下所示:
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)
添加回答
舉報