想法由来
今天写代码过程中遇到一个需求,计算一个list中数值为1的元素的个数,其中这个list的元素数值不是为0就是为1。
一开始想到的是写个方法来计算:
1
2
3
4
5
6
7
|
# 返回一个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方法语法与参数
语法:
1
|
str .count(sub, start = 0 ,end = len (string)) |
参数:
- sub – 搜索的子字符串
- start – 字符串开始搜索的位置。默认为第一个字符,第一个字符索引值为0。
- end – 字符串中结束搜索的位置。字符中第一个字符的索引为 0。默认为字符串的最后一个位置。
具体实现
把一个list转类型为string然后用count方法计算所需要的元素个数即可,代码如下:
1
|
num = str (source_array).count( "1" ) |
如果源数组是一个numpy.array类型的数组,则将其转为list后再计数:
1
|
num = str (source_array.tolist()).count( "1" ) |
以上这篇用python一行代码得到数组中某个元素的个数方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/HOMEGREAT/article/details/80079615