marks = [90, 25, 67, 45, 80] a = marks print(marks.count(a>=60))
我想使這(金額)爲列表形式蟒蛇
我想看看有多少學生超過60個商標獲得超過60
marks = [90, 25, 67, 45, 80] a = marks print(marks.count(a>=60))
我想使這(金額)爲列表形式蟒蛇
我想看看有多少學生超過60個商標獲得超過60
多少分數?
>>> marks = [90, 25, 67, 45, 80]
>>> len([score for score in marks if score > 60])
3
這將使用列表理解來創建一個僅包含超過60分者一個新的列表,然後將新的列表的長度會告訴你有很多的得分上面有60
另一種常見的方法是使用sum()
:
>>> sum(1 if score > 60 else 0 for score in marks)
3
你也可以採取的事實,即布爾是整數:
>>> sum(score > 60 for score in marks)
3
或者,更好的理解,使用for循環:
count = 0
for score in marks:
if score > 60:
count += 1
print count
你可以這樣做:
In [6]: sum(x >= 60 for x in marks)
Out[6]: 3
我希望這個人能也有幫助。
這裏我們使用filter
函數獲取大於或等於60的元素,然後使用len
函數得到no。的元素。
marks = [90, 25, 67, 45, 80]
print(len(filter(lambda x: x>=60,marks)))
downvote背後的原因對我有幫助。誰降低了? –
除了此代碼打印'237'之外,還需要在Python 3中導入'functools.reduce'。這應該是'reduce()'不再受青睞的一個大提示。將'filter()'與'lambda'然後'reduce()'結合起來效率低下,並且與等價的列表理解或通過使用sum()相比可讀性差。 – mhawke
您可以使用filter
只包括您所關心的標記: 「超過60標誌」
marks = [90, 25, 67, 45, 80]
print(len(filter(lambda x: x>=60, marks)))
意味着'一> 60',而不是'一個> = 60'這是包容性的。 – mhawke