2017-02-19 54 views
1

我們如何在python中組合IF語句和FOR循環。像如何使用組合if和for語句執行此操作

list = [1,2,3,4] 
x = 4 
count = 0 
for i in list: 
    if (i == x): 
     count += 1 

我們如何將一行中的行4,5,6組合在一起?這可能嗎?

+1

'len([我爲我在列表中,如果我== x])' –

回答

1

是的,它可能是,你要做的是計數的出現次數和Python列表已經有一個方法count()完成工作。但是您應該避免使用變量名稱list它會影響Python list數據結構。

>>> number_list = [1, 2, 3, 4] 
>>> print number_list.count(4) 
>>> 1 
1
number_count = sum(1 for i in number_list if i == x) 

不要使用listcount變量名,因爲有可能是這些名稱的內置含義混淆。特倫斯希爾的答案很好,但如果列表很長,將會使用更多的內存,因爲它在找到它的大小之前會建立一個完整列表。礦是一個生成器表達式,永遠不會建立完整的列表。 ZdaR的答案是Python的最大答案,因爲它使用了Python的內置功能,可能會最快並且使用最少的內存。這個答案貼近你實際詢問的內容。