Python列表是一个有序的集合,可以存储多个不同类型的元素。而负数是指小于0的整数。在Python列表中,我们想要找到负数的个数,可以通过以下几个方面进行实现。
一、使用循环遍历
lst = [1, -2, 3.5, -4, 5, -6, -7, 8, -9]
count = 0
for i in lst:
if i < 0:
count += 1
print("负数的个数为:", count)
以上代码使用for循环遍历列表,当列表中的元素小于0时,计数器count加1,最后输出负数的个数。这种方法简单易懂,但当列表元素数量很大时,效率较低。
二、使用列表推导式
lst = [1, -2, 3.5, -4, 5, -6, -7, 8, -9]
count = len([i for i in lst if i < 0])
print("负数的个数为:", count)
以上代码使用列表推导式,在一行代码中便可实现。这种方法与第一种方法相比,计算速度更快。
三、使用filter过滤器
lst = [1, -2, 3.5, -4, 5, -6, -7, 8, -9]
count = len(list(filter(lambda x: x < 0, lst)))
print("负数的个数为:", count)
以上代码使用filter过滤器,将列表中小于0的元素筛选出来,再计算个数。这种方法也比较快速,但相对于第二种方法而言,可读性稍差。
四、使用numpy库
import numpy as np
lst = [1, -2, 3.5, -4, 5, -6, -7, 8, -9]
arr = np.array(lst)
count = len(arr[arr < 0])
print("负数的个数为:", count)
以上代码使用numpy库,将列表转化为numpy数组,再使用numpy数组中的方法轻松计算负数的个数。但此方法需导入外部库,增加了代码的复杂度。
五、使用pandas库
import pandas as pd
lst = [1, -2, 3.5, -4, 5, -6, -7, 8, -9]
df = pd.DataFrame({"a":lst})
count = len(df[df["a"] < 0])
print("负数的个数为:", count)
以上代码使用pandas库,将列表转化为pandas的DataFrame对象,并使用DataFrame中的筛选方法计算负数的个数。但此方法同样需导入外部库,增加了代码的复杂度,且相对于其他方法计算速度较慢。
原创文章,作者:EMCML,如若转载,请注明出处:https://www.506064.com/n/375645.html