1.有标题属性
2.能求解每行每列的和、均值、最大值、最小值、标准差的行为
有标题属性
class form:
def __init__(self,title):
self.title=title
self.rows=[]
首先我们定义一个 ‘form’ 的类
拥有 ‘title’ 标题的属性
作为一个表格,还需要表格属性,这里我们把表格属性单独拿出来,不与标题一同进行输入。
接下来我们要对二维表格中的每列数据进行运算
在以上类的基础上我们先进行简单的求和运算
def sum_column(self,columns):
x=0
for r in self.rows:
x += r[columns]
return x
在这里 columns 代表列索引,注意索引是从0开始的哦!
对于一个二维列表来说
for r in self.rows:
这句话的含义实际上是r对于rows中的每个子列表的一个for循环
所以r代表rows中的每行,作为一个列表
所以在下一步中只需要进行一次索引
x += r[columns]
例如columns=1,那么第一次循环中,得到的 r[columns] 就代表第1行第2列的元素
那么求和我们就搞定了
接下来的同理,我们在此基础上把后面的运算全部搞定,再加一点点细节 (不是)
就得到了这样的结果
class form:
def __init__(self,title):
self.title=title
self.rows=[]
def sum_column(self,columns):
x=0
for r in self.rows:
x += r[columns]
return x
def avg_column(self,columns):
return self.sum_column(columns)/len(self.rows)
def max_column(self,columns):
x = self.rows[0][columns]
for r in self.rows:
if r[columns] > x:
x = r[columns]
return x
def min_column(self,columns):
x = self.rows[0][columns]
for r in self.rows:
if r[columns] < x:
x = r[columns]
return x
def std_column(self,columns):
x=0
for r in self.rows:
x += (r[columns]-self.avg_column(columns))**2
return (x/len(self.rows))**(1/2)
def sum_index(self,index):
n = len(self.rows[0])
x = 0
for i in range(0,n):
x += self.rows[index][i]
return x
def avg_index(self,index):
return self.sum_index(index)/len(self.rows[0])
def max_index(self,index):
x = self.rows[index][0]
n = len(self.rows[0])
for i in range(0,n):
if self.rows[index][i] > x:
x = self.rows[index][i]
return x
def min_index(self,index):
x = self.rows[index][0]
n = len(self.rows[0])
for i in range(0,n):
if self.rows[index][i] < x:
x = self.rows[index][i]
return x
def std_index(self,index):
x = 0
n = len(self.rows[0])
for i in range(0,n):
x += (self.rows[index][i]-self.avg_index(index))**2
return (x/n)**(1/2)
z = form('a')
z.rows = [[1,2,3,4],[4,5,6,7],[7,8,9,0]]
columns = int(input('现在有%d列,你想看第几列的信息?\n'%(len(z.rows[0]))))-1
print('第%d列和:'%(columns+1),z.sum_column(columns))
print('第%d列平均值:'%(columns+1),z.avg_column(columns))
print('第%d列最大值:'%(columns+1),z.max_column(columns))
print('第%d列最小值:'%(columns+1),z.min_column(columns))
print('第%d列标准差:'%(columns+1),z.std_column(columns))
index = int(input('现在有%d行,你想看第几行的信息?\n'%(len(z.rows))))-1
print('第%d行和:'%(index+1),z.sum_index(index))
print('第%d行平均值:'%(index+1),z.avg_index(index))
print('第%d行最大值:'%(index+1),z.max_index(index))
print('第%d行最小值:'%(index+1),z.min_index(index))
print('第%d行标准差:'%(index+1),z.std_index(index))
在此进行一些说明
index 代表行索引
columns 代表列索引
得到的输出样式是这样的
现在有4列,你想看第几列的信息?
3
第3列和: 18
第3列平均值: 6.0
第3列最大值: 9
第3列最小值: 3
第3列标准差: 2.449489742783178
现在有3行,你想看第几行的信息?
3
第3行和: 24
第3行平均值: 6.0
第3行最大值: 9
第3行最小值: 0
第3行标准差: 3.5355339059327378
对于这样的结果我觉得还可以,希望能帮助大家加深对于二维列表的理解
一家之言,如有疏漏请指出,感谢各位观看
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XWebSecurity-XSSmoreX XXXXXXXXXXXXXXXXXXXXXX...
虽然小程序中有大把的自定义 sticky 组件可用,原理无非是监听页面滚动改变 posi...
复制代码 代码如下: private function askQuestion(event:MouseEvent):void { va...
本文实例讲述了Ajax对缓存的处理方法。分享给大家供大家参考,具体如下: 缓存 ...
复制代码 代码如下: objectclassid="clsid:D27CDB6E-AE6D-11cf-96B8-44455354000...
1.当你失去一切时,你就会发现什么是你唯一需要的。 2.你来,信你不会走;你走...
Softpedia 报道称,Mac 上的 Microsoft Defender for Endpoint 安全软件,刚刚迎...
ueditor是百度编辑器,在本地的iis环境是可以上传图片了,但放在服务器的iis环境...
HTTP-REFERER这个变量已经越来越不可靠了,完全就是可以伪造出来的东东。 以下是...
Office xp之后的版本支持通过webdav协议(http的扩展)直接编辑服务器上的文件。...