py-统计一个矩阵中每一列的非0数的个数

1.文件类型类似于这样:

不过数据量比这个要更大一点。

2.对应上述数据的运行结果:

import matplotlib.pyplot as plt

with open('test.txt') as fob:
    lines=fob.readlines()

#去除掉每行最后一个换行符,就可以正确统计了,我也真不知道是为什么
for i in range(len(lines)):
    lines[i]=lines[i].rstrip()

#在这里要创建一个长度的list进行统计
#但是这个地方的lines应该是包括空格的长度。
lens=len(lines[0].split(" "))-1
lts=[0 for _ in range(lens)]#这里存的数据类型是int

for line in lines:
    lt=line.split(" ")#这里lt是str类型的
    lt.pop(0) #删除掉第一个元素
    #for k in lt:
    #   print(k,end="")#这里是不换行输出
    for i in range(len(lt)):
        if lt[i] != '0':
            lts[i]+=1
        if(i==6):
            print(lt[i]+" "+str(lts[i]))
#画一个折线图
for i in lts:
    print(i)
plt.plot(lts,linewidth=5)
plt.show()

    
        

//其中学到了不少东西。

运行结果:

1.如何按行读取文件并且存储到list中

2.如何创建一个指定长度和初值的list

3.从文件中读取的行进行split之后仍然是str类型的

4.如何画折线图进行巩固

5.其中还出现了一个问题,就是在统计最后一行的非0个数时老是出错,通过将换行符去掉,也就是加上了rstrip()函数之后就可以正常使用了。

5.python中没有自增:

转自:https://blog.csdn.net/guang09080908/article/details/47273775

https://www.cnblogs.com/erbaodabao0611/p/7646945.html

意思就是,使用++/--会使变量的id发生变化如下:

a=5
print(id(a))
a+=1
print(id(a)) #相当于新生成了一个变量,操作后的结果赋予了这个新的变量。
#++的话代表改变了对象本身,
#python数据对象是不可改变的。

b=5
print(id(b))
b=6
print(id(6))

#运行结果
2012966032
2012966064
2012966032
2012966064
原文地址:https://www.cnblogs.com/BlueBlueSea/p/9884017.html