问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

python中如何表示多维数组

发布网友 发布时间:2022-04-21 05:24

我来回答

1个回答

热心网友 时间:2022-04-18 10:24

在Python中,一个像这样的*表格可以通过“序列的序列”实现。一个表格是行的序列。每一行又是独立单元格的序列。这类似于我们使用的数学记号,在数学里我们用Ai,j,而在Python里我们使用A[i][j],代表矩阵的第i行第j列。
这看起来非常像“元组的列表”(Lists of Tuples)。
“列表的列表”示例:
我们可以使用嵌套的列表推导式(list comprehension)创建一个表格。 下面的例子创建了一个“序列的序列”构成的表格,并为表格的每一个单元格赋值。
table= [ [ 0 for i in range(6) ] for j in range(6) ]print tablefor d1 in range(6):for d2 in range(6):table[d1][d2]= d1+d2+2print table123456程序的输出结果如下:
[[0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0]],
[[2, 3, 4, 5, 6, 7], [3, 4, 5, 6, 7, 8], [4, 5, 6, 7, 8, 9],
[5, 6, 7, 8, 9, 10], [6, 7, 8, 9, 10, 11], [7, 8, 9, 10, 11, 12]]
1234
这个程序做了两件事:创建了一个6 × 6的全0表格。 然后使用两枚骰子的可能组合的数值填充表格。 这并非完成此功能最有效的方式,但我们通过这个简单的例子来演示几项技术。我们仔细看一下程序的前后两部分。
程序的第一部分创建并输出了一个包含6个元素的列表,我们称之为“表格”;表格中的每一个元素都是一个包含6个0元素的列表。它使用列表推导式,对于范围从0到6的每一个j都创建对象。每一个对象都是一个0元素列表,由i变量从0到6遍历产生。初始化完成之后,打印输出二维全0表格。
推导式可以从里向外阅读,就像一个普通表达式一样。内层列表[ 0 for i in range(6) ]创建了一个包含6个0的简单列表。外层列表[ [...] for j in range(6) ]创建了这些内层列表的6个深拷贝。
程序的第2个部分对2个骰子的每一个组合进行迭代,填充表格的每一个单元格。这由两层嵌套循环实现,每一个循环迭代一个骰子。外层循环枚举第一个骰子的所有可能值d1。内层循环枚举第二个骰子d2。
更新每一个单元格时需要通过table[d1]选择每一行;这是一个包含6个值的列表。这个列表中选定的单元格通过...[d2]进行选择。我们将掷骰子的值赋给这个单元格,d1+d2+2。
其他示例:
打印出的列表的列表不太容易阅读。下面的循环会以一种更加可读的形式显示表格。
for row in table:
print row[2, 3, 4, 5, 6, 7]
[3, 4, 5, 6, 7, 8]
[4, 5, 6, 7, 8, 9]
[5, 6, 7, 8, 9, 10]
[6, 7, 8, 9, 10, 11]
[7, 8, 9, 10, 11, 12]
12345678910111213作为练习,读者可以试着在打印列表内容时,再打印出行和列的表头。提示一下,使用"%2d" % value字符串运算符可以打印出固定长度的数字格式。显示索引值(Explicit Index Values)。
我们接下来对骰子表格进行汇总统计,得出累计频率表。我们使用一个包含13个元素的列表(下标从0到12)表示每一个骰子值的出现频率。观察可知骰子值2在矩阵中只出现了一次,因此我们期望fq[2]的值为1。遍历矩阵中的每一个单元格,得出累计频率表。
fq= 13 * [0]for i in range(6):for j in range(6):c= table[i][j]fq[ c ] += 112345使用下标i选出表格中的行,用下标j从行中选出一列,得到单元格c。然后用fq统计频率。
这看起来非常的数学和规范。
Python提供了另外一种更简单一些的方式。
使用列表迭代器而非下标,表格是列表的列表,可以采用无下标的for循环遍历列表元素。
fq= 13 * [0]print fqfor row in table:for c in row:fq[c] += 1print fq[2:
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
为什么我每过一段时间就有“鬼压床”?求解决方法! 低保户可以买产权房吗 民政审批低保户的条件有那些低保户年审会将名,下有小产权房作为审核条件... 什么情况下西班牙语的字母上要加一个上升或下降的符号? 除了这些有没有别的情况也用连字符: 书写法语时,连字符“-”是不能... 的必须是什么意思吗? 杭州43路公交车在那换乘599路公交车 杭州43路公交车到德胜西路站么 杭州德胜路到文二路坐车要多久 你好十月唯美句子 你好十月唯美的句子有哪些 CPU的指令大致可以归纳为? 心情不好时、怎样才可以让自己心里舒服一点? python中π怎么表示? 心情不好时,怎么让自己心情好起来? python,如两图,花括号里的内容分别表示什么意思?谢谢 最近心情不好,怎样是自己好起来呢? 心情不好的时候,要怎样才能使得心情尽快好起来?! python中虚数i怎么表示 python缩进要求 心情不好时该怎样调节心态呢? python中的单行注释和多行注释分别用什么符号表示 python符号表示什么意思 python中怎么表示是3的倍数或者尾数是3的数? python里面e符号代表什么? Python中如何表示正整数? python 如何表示数据结构 python中字符串怎么表示 python 中不等于怎么表示 英文字母在python中怎么表示? python语言中换行有哪些表达方法 心情不好是怎样才能变得好起来? 心情不好时,怎样调整自己的心情呢? 心情不好该怎样让心情好起来? 心情不好怎样才能 很快好起来? 心情不好怎么办,怎样能使心情好起来 心情不好怎么办要怎样做才能让心情好起来 心情不好,怎么才能让自己开心起来? 怎样才能让心情不好的人开心起来? 心情不好时,怎样才能让心情好起来?? 当心情不好时,怎样才能尽快让自己心情好起来 心情不好的时候怎样使自己好起来 情绪低落特别想哭的时候怎么办 心情不好 怎么样才可以让心情好起来 cpu的指令系统又称为什么 公积金缴存基数是什么意思? 公积金缴费基数是多少 住房公积金缴存基数什么意思 公积金个人缴存基数什么意思 住房公积金缴费基数怎么算的 公积金缴存基数是什么意思?,,