有這樣的串列: ["Apple", "Banana", "Peach", "Apple", "Banana", "Orange"]
我試圖將串列傳遞給一個函式并按如下方式對其進行排序:
def l(fruits):
for i in fruits:
print(i)
n = ["Apple", "Banana", "Peach", "Apple", "Banana", "Orange"]
l(sorted(n))
我只得到這樣的結果:
Apple
Apple
Banana
Banana
Orange
Peach
我想知道如何分別計算串列中每個專案的出現次數以獲得如下輸出:
Apple 2
Banana 2
Orange 1
Peach 1
我知道使用collections.Counter可以獲得類似的結果,但是,我希望輸出與上面相同。
編輯:我剛剛發現串列中的專案應該是小寫的。
另外,我嘗試在沒有 collections_counter
def fruit_list(fruits):
for i in fruits:
fruit_occurence = fruits.count("apple")
fruit_occurence2 = fruits.count("banana")
fruit_occurence3 = fruits.count("peach")
fruit_occurence4 = fruits.count("orange")
if i == "apple":
print(i.title(), *{fruit_occurence})
elif i == "banana":
print(i.title(), *{fruit_occurence2})
elif i == "peach":
print(i.title(), *{fruit_occurence3})
elif i == "orange":
print(i.title(), *{fruit_occurence4})
f = ["apple", "banana", "peach", "apple", "banana", "orange"]
fruit_list(sorted(f))
輸出:
Apple 2
Apple 2
Banana 2
Banana 2
Orange 1
Peach 1
無論如何要洗掉輸出中的重復項?將串列更改為 set 會影響fruit_occurances。
uj5u.com熱心網友回復:
您可以使用Counter,然后使用sorted在for中function,然后用print(*...)象下面這樣:
from collections import Counter
def l(fruits):
for i in sorted(Counter(fruits).items()):
print(*i)
n = ["Apple", "Banana", "Peach", "Apple", "Banana", "Orange"]
l(n)
輸出:
Apple 2
Banana 2
Orange 1
Peach 1
uj5u.com熱心網友回復:
使用collections.Counter:
from collections import Counter
def l(fruits):
c = Counter(fruits)
for fruit, count in sorted(c.items()):
print(fruit, count)
uj5u.com熱心網友回復:
完全不用修改l,
>>> l(f'{f} {c}' for f, c in sorted(Counter(n).items()))
訣竅是創建一個生成器運算式,該運算式生成要從Counter實體列印的字串。
uj5u.com熱心網友回復:
text = ["Apple", "Banana", "Peach", "Apple", "Banana", "Orange"]
dict = {}
def l(text):
for i in text:
dict[i] = text.count(i)
print(dict)
l(text)
uj5u.com熱心網友回復:
這應該適合你
import collections
fruits = ["Apple", "Banana", "Peach", "Apple", "Banana", "Orange"]
d = {}
for fruit in fruits:
if fruit in d:
d[fruit] = 1
else:
d[fruit] = 1
od = collections.OrderedDict(sorted(d.items()))
print (od)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/314352.html
上一篇:以特定順序對串列進行排序的功能,同時還計算每個值出現的次數
下一篇:根據給定的條件組成一個數字
