展开全部

在Python中,一2113个像这样的多维表格可以通过“5261序列的序列”4102实现。一个表格是行的序1653列。每一行又是独立单元格的序列。这类似于我们使用的数学记号,在数学里我们用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:

已赞过

已踩过<

你对这个回答的评价是?

评论

收起

python输入矩阵_python如何输入矩阵相关推荐

  1. python如何输入一个矩阵_python怎么输入矩阵

    python怎么输入一个数组矩阵 下面是基于python3.4的 这样子: 1 2 3 4 import numpy as np arr = [1,2,3,4,5,6,7,8,9] matrix_a ...

  2. python创建数组放入矩阵_python数组和矩阵使用总结

    1.数组和矩阵常见用法 Python使用NumPy包完成了对N-维数组的快速便捷操作.使用这个包,需要导入numpy. SciPy包以NumPy包为基础,大大的扩展了numpy的能力.因此只要导入了s ...

  3. python输出函数使用_python基本输入输出函数

    python程序设计中有三个重要的基本输入.输出函数,用于输入.转换和输出,分别是input(),eval(),print() 1,input()函数 """ input ...

  4. python自动输入文字_Python自动输入【新手必学】

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:哈喽哈嘿哈 这篇文章是我的第一篇文章,写的不好的地方,请大家多多指教哈,另 ...

  5. c++读出像素矩阵_Python传numpy矩阵调c++(求3D图像连通区域)

    Python有很多种调c++的方法,有的复杂有的简单,有时使用的时候反而不知道到底该用哪一种比较好,其实没有最好的方法,只有适合不适合自己.本文从我所遇到的问题说起,然后讲述另一种比较简单的pytho ...

  6. python中如何输入矩阵_python - 如何向矩阵中添加向量_numpy_酷徒编程知识库

    首先,我们可以初始化一个用零填充所需形状的矩阵,然后将a复制到前13行.在任何情况下,我们都必须形成一个新的矩阵,因为我们无法摆弄现有的矩阵/向量,因为我们需要为额外的空行分配更多的内存. 你可以在下 ...

  7. python将list转为矩阵_python list转矩阵的实例讲解

    python list转矩阵的实例讲解 如下所示: #list转矩阵,矩阵列合并 x = [[1.2,2.2,1.4],[1.3,2.4,2.1],[1,1,0]] #表示有三个点,第一个点为(1,2 ...

  8. python多线程挂了_python多线程输入的问题 python高效编程技巧13(如何在线程之间实现...

    python3 创建线程时不用args传参,执行线程时为什如果创建线程时在target里就传入了参数,为什么在启动线程时,线程不是在Python多线程下,每个线程的执行方式: 有什么了不起,大不了继续 ...

  9. python输入姓名_Python 用户输入用户名,进行验证

    Python 征程(用户输入名字进行密码验证) #!/usr/bin/env python account_file = file('account.txt') user_list = account ...

  10. python输入数组_python怎么输入数组

    python怎么输入数组? python输入数组 一维数组:arr = input("") //输入一个一维数组,每个数之间使空格隔开 num = [int(n) for n in ...

最新文章

  1. router vue 多个路径_vue-router 路径问题
  2. android使用桢布局,Android性能优化UI篇
  3. mysql和FTP结合,vsftp基于mysql和ssl的配置
  4. 《转》程序员必须知道的10大基础实用算法及其讲解
  5. 宣告推出.NET Core 3.0 Preview 7
  6. 在caffe中添加样本扩增的功能
  7. iOS中确认网络的方法
  8. Word打开后出现乱码
  9. 怎样用eclipse新建一个android项目?用eclipse新建android项目出错?请看下面
  10. html 分页table,利用JS实现HTML TABLE的分页
  11. Chrome浏览器无法访问网页(移动硬盘)
  12. 计算机怎样更新卡驱动,电脑显卡驱动怎么更新(NVIDIA显卡手动更新教程)
  13. 单核CPU仍然存在线程安全问题
  14. 2019暑假牛客多校赛第九场H.Cutting Bamboos (主席树+二分)
  15. VTK学习笔记(三十六)VTK图像填充
  16. [转载]政治家的道德底线——谈李斯之死
  17. 使用gitlab ci构建IOS包并发送通知消息到企业微信
  18. a as as big rat_励志英语名言-20页
  19. 【数据结构】二叉树的原理及实现
  20. 幼儿园科学机器人教案

热门文章

  1. LiveGBS流媒体平台GB/T28181常见问题-海康大华宇视监控设备安防摄像头等设备注册不上来如何检查问题?
  2. google gflags 库完全使用
  3. mac jenkins下载与安装
  4. python中line是什么意思_python 中循环 line for line in file(filename)什么意思?
  5. 如何查看Linux虚拟机ip地址
  6. 华为鸿蒙deveco studio编译时提示Browserslist: caniuse-lite is outdated的解决办法
  7. win7锁定计算机后怎么打开,win7电脑怎么设置锁屏
  8. 拷优(CopyU!)mini独家具备穿透U盘防拷贝软件的功能!
  9. 免费PPT模板下载??
  10. 产品分析 | K12在线教育之猿辅导