想法由來
今天寫代碼過程中遇到一個需求,計算一個list中數值為1的元素的個數,其中這個list的元素數值不是為0就是為1。
一開始想到的是寫個方法來計算:
# 返回一個0,1數組中1的數量def num_one(source_array): count = 0 for x in source_array: if x == 1: count += 1 return count
嗯好吧,然后覺得這是最low的方法了,就在想強大的python可不可以一行代碼就做到以上的效果,然后發現真的可以。
count方法描述
用到了一個python自帶的count()方法,count()方法用于統計字符串里某個字符出現的次數。可選參數為在字符串搜索的開始與結束位置。
count方法語法與參數
語法:
str.count(sub, start= 0,end=len(string))
參數:
- sub – 搜索的子字符串
- start – 字符串開始搜索的位置。默認為第一個字符,第一個字符索引值為0。
- end – 字符串中結束搜索的位置。字符中第一個字符的索引為 0。默認為字符串的最后一個位置。
具體實現
把一個list轉類型為string然后用count方法計算所需要的元素個數即可,代碼如下:
num = str(source_array).count("1")如果源數組是一個numpy.array類型的數組,則將其轉為list后再計數:
num = str(source_array.tolist()).count("1")以上這篇用python一行代碼得到數組中某個元素的個數方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林站長站。
新聞熱點
疑難解答