= 10: n=9 _list = [[0 for i in range(" /> = 10: n=9 _list = [[0 for i in range(">
  1. 首页 > 智能数码 >

python二维数组定义 python二维数组元素

python求解?

因为一些事耽搁了回答,看到下边六个,一个把简单的问题写的这么复杂化,剩下的一堆不知所云。

python二维数组定义 python二维数组元素python二维数组定义 python二维数组元素


python二维数组定义 python二维数组元素


定义空的二维数组,然后赋值

import random

print("输入n")

n = int(input())

if n >= 10:

n=9

_list = [[0 for i in range(n)] for i in range(n)]

for i in range(n):

for j in range(n):

_list[i][j]=random_number = random.randint(1,100) for i in _list:

print(i)

import random

n = int(input("Input a number:"))

if n >= 10:

n=9

list = [[0 for i in range(n)] for i in range(n)]

for i in list:

print(i)

for i in range(n):

for j in range(n):

list[i][j] = random.randint(1,100)

for i in list:

print(i)

随机生成nn方阵

结果:

计算机程序设置的语言

。? after one's words

在 Python 中使用二维数组

如果你需要使用二维数组,在 Python 中,除了 numpy 这个包之外,简单的方式就是使用 list 了。你可能认为可以这样构建:

但是请你再仔细想一想,这样做真的没有问题吗?

不要忘记了, Python 一切都是对象 这个问题,对象肯定存在引用的问题,尤其是可变对象。我们试着来改变其中一个元素:

很不幸,不是我们想象的那样,它改变了多个元素。

来看一看 [ [0] m ] n 这个表达式,它首先创建 a = [ [0] 4] ,然后构造 array = [a] 3 ,这里 array 里面是 a 的 3 个引用。

正确的构造,应该使用 列表推导式 ,而且非常 Pythonic :

python中如何使用二维数组

在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]

123456780111213作为练习,读者可以试着在打印列表内容时,再打印出行和列的表头。提示一下,使用"%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列表,在计算机语言中,Python列表是被广泛应用的语言,如果你有一些关于Python列表的实际相关应用的技巧有不解之处时,你可以浏览我们的文章,以下是文章的内容。

Python中没有数组的数据结构,但列表很像数组,如:

a=[0,1,2]这时a[0]=0, a[1]=1, a[[2]=2,但引出一个问题,即如果数组a想定义为0到999怎么办,这时可能通过a = range(0, 1000)实现。或省略为a = range(1000).如果想定义1000长度的a,初始值全为0,则

a = [0 for x in range(0, 1000)]这里定义了1010初始为0的二维数组。后来,我在网上找到了更简单的字义二维数组的方法:b = [[0]10]10,定义1010初始为0的二维数组。与

a=[[0 for x in range(10)] for y in range(10)]比较:print a==b的结果为True。但用b的定义方法代替a后,以前的可以正常运行的程序也出错了,经过仔细分析得出区别:a[0][0]=1时,只有a[0][0]为1,其他全为0。b[0][0]=1时,a[0][0],a[1][0],只到a[9,0]全部为1。由此得到大数组中的10个小的一维数据全是一个相同的引用,即指向同一地址。故 b = [[0]10]10并不符合我们常规意义上的二维数组。

同时经过试验:c=[0]10的定义与c=[0 for x in range(10)]有同样的效果,而没有上面相同引用的问题,估计数组c的定义时是值类型相乘,而前面b的用类型的相乘,因为一维数组是一个引用(借用C#中的值类型和引用类型,不知是否合适)。 以上文章就是对Python列表的部分介绍。

python 如何定义动态二维数组

追加字符串列表主要的二维列表。由于名单基本上列出清单,一个两维的名单将代表一个单一的清单,其中包含其他列表。 .,因为Python列表是动态的,首先你可以使用“追加”功能容易添加和删除其他列表:

用python怎么做,定义一个10×10的二维数组(范围内随机整数可重复),行列值之和为定值?

#创建一个10x10的二维数组

import random

import numpy as np

a = np.random.randint(0,10,size=[10,10])

print (a)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至836084111@qq.com 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息