簡體   English   中英

在Python中計算列表的元素

[英]Counting elements of a list in Python

我試圖定義一個函數,它接受兩個輸入,一個列表和一個項目(可以是一個字符串,int,浮點數),它返回項目在列表中出現的次數。 這是我的代碼:

def count(sequence,item):
    for all x in sequence:
        if x != item:
            while x in sequence:
                sequence.remove(x)
    return len(sequence)

但是,這只會刪除不等於序列中項目的第一個元素並刪除它。 例如,count([4,8,3],3)返回2,因為它只從列表中刪除4。 我認為for循環應該照顧它。

有什么建議么?

這很簡單,使用count方法:

the_list.count(the_item)

從文檔:

list.count(x)返回x在列表中出現的次數。

例如:

[1, 2, 3, 1, 4].count(1)
=> 2

順便說一句 - 我不明白,為什么要刪除一個應該簡單計算它們的函數中的元素?

迭代列表並更改此列表的長度(使用remove())是危險的

在您的情況下,當您迭代列表'序列'時,首先您將獲得序列[0](即4)。 你刪除它。 然后,你將得到序列[1]。 你假設序列[1]是8.但是,因為你之前刪除了4,現在序列[0]是8而序列[1]是3.所以你得到的不是8但是3.這就是為什么你不能刪除8從序列。 你忽略它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM