-
python 二维数组 长度_Python创建二维数组的正确姿势
2021-01-07 02:56:17↑↑↑点击上方“蓝字”,关注“极客猴”如果你喜欢极客猴,可以把我置顶或...在用法上,它有点类似数组,因为每个列表都有一个下标,下标从 0 开始。因此,我们可以使用 list[1] 来获取下标对应的值。如果我们深入...↑↑↑点击上方“蓝字”,关注“极客猴”
如果你喜欢极客猴,可以把我置顶或加为星标
题图:by watercolor.illustrations from Instagram
阅读文本大概需要 3 分钟。
List (列表)是 Python 中最基本的数据结构。在用法上,它有点类似数组,因为每个列表都有一个下标,下标从 0 开始。因此,我们可以使用 list[1] 来获取下标对应的值。如果我们深入下列表的底层原理,会发现列表是基于 PyListObject 实现的。PyListObject 是一个变长对象,所以列表的长度是随着元素多少动态改变的。同时它还支持插入和删除等操作,所以它还是一个可变对象。
可以简单理解为,Python 的列表是长度可变的数组。一般而已,我们用于列表创建都是一维数组。那么问题来,我们如果创建多维数组呢?
01 列表能创建多维数组?
列表是支持操作符,如果一个列表与 ‘ * ’ 号结合使用,能达到重复列表的效果。比如
list_one = [0]
list_two = [0] * 3
print(list_one)
print(list_two)
>>> 运行结果:
[0]
[0, 0, 0]那么利用这个重复特性,我们是否可以来创建一个二维数组呢?于是乎,我进行一顿猛操作,结果就被我折腾出来了。
list_one = [0]
list_two = [[0] * 3] * 3
print(list_one)
print(list_two)
>>> 运行结果:
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]看起来很完美的操作,但是如果进行一些列表更新操作,问题就显露出来了。比如我对 list_two 的更换中间位置的值,即对 list_two[1][1] 进行更换值。
list_two = [[0] * 3] * 3
print(list_two)
list_two[1][1] = 2
print(list_two)不难发现,运行结果有点不对劲,列表中有三个位置的值也改变了。
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
[[0, 2, 0], [0, 2, 0], [0, 2, 0]]为什么会出现在这种情况呢?原因是浅拷贝,我们以这种方式创建的列表,list_two 里面的三个列表的内存是指向同一块,不管我们修改哪个列表,其他两个列表也会跟着改变。
如果要使用列表创建一个二维数组,可以使用生成器来辅助实现。
list_three = [[0 for i in range(3)] for j in range(3)]
print(list_three)
list_three[1][1] = 3
print(list_three)我们对 list_three 进行更新操作,这次就能正常更新了。
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
[[0, 0, 0], [0, 3, 0], [0, 0, 0]]除了以上的方式,还有一种更加简洁方便的方式,就是使用 NumPy 模块。
02 相比 List,NumPy 数组的优势
NumPy 全称为 Numerical Python,是 Python 的一个以矩阵为主的用于科学计算的基础软件包。NumPy 和 Pandas、Matpotlib 经常结合一起使用,所以被人们合称为数据分析三剑客。
Numpy 中有功能强大的 ndarray 对象,能创建 N 维的数组,另外还提供很多通用函数,支持对数组的元素进行操作、支持对数组进行算法运算以及提供常用的统计函数。
相比 List 对象,NumPy 数组有以下优势:
1.这是因为列表 list 的元素在系统内存中是分散存储的,而 NumPy 数组存储在一个均匀连续的内存块中。这样数组计算遍历所有元素,不像列表 list 还需要对内存地址进行查找,从而节省了计算资源。
2.Numpy数组能够运用向量化运算来处理整个数组,速度较快;而 Python 的列表则通常需要借助循环语句遍历列表,运行效率相对来说要差。
3.NumPy 中的矩阵计算可以采用多线程的方式,充分利用多核 CPU 计算资源,大大提升了计算效率。
4.Numpy 使用了优化过的 C API,运算速度较快。
03 创建数组
前面说到 NumPy 的主要对面是 ndarray 对象,它其实是一系列同类型数据的集合。因为 ndarray 支持创建多维数组,所以就有两个行和列的概念。
创建 ndarray 的第一种方式是利用 array 方式。
import numpy as np
# 创建一维数组
nd_one = np.array([1, 2, 3])
# 创建二维数组
nd_two = np.array([[1, 2, 3], [4, 5, 6]])
print(nd_one)
print(nd_two)
print('nd_two.shape =', nd_one.shape)
print('nd_two.shape =', nd_two.shape)
>>> 运行结果:
[1 2 3]
[[1 2 3]
[4 5 6]]
nd_two.shape = (3,)
nd_two.shape = (2, 3)其中 shape 是数组的一个属性,表示获取数组大小(有多少行,有多少列),如果是一维数组,则只显示(行,)。代码中打印出 nd_two 的形状,输出为(2,3),表示数组中有 2 行 3 列。
第二种办法则使用 Numpy 的内置函数
1.使用arange 或 linspace 创建连续数组。
import numpy as np
# arange() 类似Python内置函数的 range()
# arange(初始值, 终值, 步长) 不包含终值
x0 = np.arange(1, 11, 2)
print(x0)
# 创建一个 5x3 的数组
x1 = np.arange(15).reshape((5, 3))
print(x1)
# linspace()线性等分向量
# linspace(初始值, 终值, 元素个数) 包含终值
x2 = np.linspace(1, 11, 6)
print(x2)
>>> 运行结果:
[1 3 5 7 9]
[[ 0 1 2]
[ 3 4 5]
[ 6 7 8]
[ 9 10 11]
[12 13 14]]
[ 1. 3. 5. 7. 9. 11.]虽然 np.arange 和 np.linspace 起到的作用是一样的,都是创建等差数组,但是创建的方式是不同的。
2.使用 zeros(),ones(),full() 创建数组
import numpy as np
# 创建一个 3x4 的数组且所有值全为 0
x3 = np.zeros((3, 4), dtype=int)
print(x3)
# 创建一个 3x4 的数组且所有元素值全为 1
x4 = np.ones((3, 4), dtype=int)
print(x4)
# 创建一个 3x4 的数组,然后将所有元素的值填充为 2
x5 = np.full((3, 4), 2, dtype=int)
print(x5)
>>> 运行结果:
[[0 0 0 0]
[0 0 0 0]
[0 0 0 0]]
[[1 1 1 1]
[1 1 1 1]
[1 1 1 1]]
[[2 2 2 2]
[2 2 2 2]
[2 2 2 2]]3.使用 eye() 创建单位矩阵
import numpy as np
# 创建 3x3 的单位矩阵
x6 = np.eye(3, dtype=int)
print(x6)
>>> 运行结果:
[[1 0 0]
[0 1 0]
[0 0 1]]4.使用 diag() 创建对角矩阵
diag() 是创建一个 NxN 的对角矩阵,对角矩阵是对角线上的主对角线之外的元素皆为 0 的矩阵。
import numpy as np
x7 = np.diag([1, 2, 3])
print(x7)
>>> 运行结果:
[[1 0 0]
[0 2 0]
[0 0 3]]5.使用 random 创建随机数组
numpy 中的 random 中有很多内置函数,能简单介绍其中的几种。
import numpy as np
# 创建 2x2 数组且所有值是随机填充
x9 = np.random.random((2, 2))
print(x9)
# 创建一个值在 [0, 10) 区间的 3x3 的随机整数
x10 = np.random.randint(0, 10, (3, 3))
print(x10)
>>> 运行结果:
[[ 0.77233522 0.41516417]
[ 0.22350126 0.31611254]]
[[0 6 5]
[7 6 4]
[5 5 9]]—END—
精彩推荐如何使用Python玩转PDF各种骚操作?500行代码,教你用python写个微信飞机大战计算机学生如何规划好大学四年的学习?
-
Solidify实现一个智能合约10(一维数组和二维数组)
2018-10-17 11:51:43固定长度的数组 固定长度类型数组的声明及其通过length方法获取数组长度求和。 pragma solidity ^0.4.4; /* 数组一旦创建,长度不可变 但里面的内容可变 */ contract Sz { //定义长为5的数组,并对其初始化。 ...固定长度的数组
固定长度类型数组的声明及其通过length方法获取数组长度求和。
pragma solidity ^0.4.4; /* 数组一旦创建,长度不可变 但里面的内容可变 */ contract Sz { //定义长为5的数组,并对其初始化。 uint[5] T = [1,2,3,4,5]; //计算数组中所有数的和。 function numbers() constant returns (uint) { uint count = 0; for(uint i=0;i<T.length;i++){ count = count + T[i]; // count += T[i]; //同上 } return count; } }
声明数组时,一旦长度固定,将不能再修改数组的长度,可以修改其内容。
可变长度的数组
声明方式
pragma solidity ^0.4.4; contract Sz { //定义可变数组,并对其初始化。 uint[] T = [1,2,3,4,5]; //因为上步中初始化5个元素,所有默认长度为5 function Tlength() constant returns (uint) { return T.length; } }
修改长度
function setLength(uint len) { T.length = len; }
修改值的两种方法
//修改值 function setIndexValue() { T[0] =5; } function pushValue() { T.push(10); }
另外的一种创建方式
uint[] T1 = new uint[](5);//5是初始长度,默认值为[0,0,0,0,0] //进行赋值 function Sz() { for(uint i=0;i<5;i++){ // T1.push(i); //push后长度会发生变化 T1[i] = i+1; } }
二维数组
定义方法1
pragma solidity ^0.4.4; contract Sz { //定义长为3的二维数组,并对其初始化。 uint[2][3] T = [[1,2],[3,4],[5,6]]; //计算数组中所有数的和。 function Sz_length() constant returns (uint) { return T.length; //3 } }
注意:与一般二维数组(行列)相反。
定义方法2
uint[2][] T1= new uint[2][](0);
修改值
// 修改值 function pushToT1(uint[2] t) { T1.push(t); } // 查看修改后的长度变化 function T1length() constant returns (uint) { return T1.length; }
memory类型数组
创建方式
pragma solidity ^0.4.4; contract Sz { function f(uint len) { uint[] memory a = new uint[](7); bytes memory b = new bytes(len); a[6] = 4; b[1] = 0x68; } }
注意:创建一个长度为length的memory类型的数组可以通过new关键字来创建,memory数组一旦创建,它不可通过length修改其长度,但可以改变其内容。(若不加memory关键字,默认的是storage类型)
类型转换问题
pragma solidity ^0.4.4; contract Sz { function f() { // g([1,2,3]); //直接调用会报错,因为g函数中默认的是uint256,而此处默认的是uint8,因此需要强转 g([uint(1),2,3]); } function g(uint[3] data) { //.... } }
memory类型的固定长度数组不可直接赋值给storage/memory类型的可变数组
总结:
bytes1~32创建的是固定字节大小的字节数组,长度不可变,内容不可修改。而string是特殊的可变字节数组,它可以转换为bytes以通过length你方法获取它的字节长度,亦可通过索引修改相对于的字节内容。
创建可变字节数组除了可以通过bytes b = new bytes(len)来创建之外,还可以通过byte[] b来创建。
而bytes1~32我们可以通过byte[len] b 来创建,len的范围为1~32。不过这 两种方式创建的不可变字节数组有一点小区别:bytes1~32直接声明的不可变字节数组中,长度不可变,内容不可变。而byte[len] b创建的字节数组,长度不可变,但内容可修改。
-
二维数组与稀疏数组
2020-12-16 23:16:50二维数组 /* 二维数组 数组中的每一个元素又是一个数组 声明 int[][] a; */ public static void main... 创建一个二维数组,二维数组的长度为3,二维数组中的一维数组长度也是3 {{0,0,0},{0,0,0},{0,0,0}}二维数组
/* 二维数组 数组中的每一个元素又是一个数组 声明 int[][] a; */ public static void main(String[] args) { /* new int[3][3] 创建一个二维数组,二维数组的长度为3,二维数组中的一维数组长度也是3 {{0,0,0},{0,0,0},{0,0,0}} 0 1 2 0 1 2 0 1 2 0 1 2 */ new int[3][] //创建一个长度为3的二维数组,其中每一个一维数组的值为空(null) /* 二维数组遍历 循环每次取出二维数组中的第i个 */ int[][]b=new int[][]{{1,2,3},{1,2,3},{1,2,3}}; for (int i = 0; i < b.length; i++) { //遍历每次取出的一维数组 for (int j = 0; j <b[i].length; j++) { System.out.print(b[i][j]+"\t"); } System.out.println();//换行 } }
稀疏数组
/*稀疏数组 * 含义:稀疏数组一般是将一个数组中有意义的值的信息存放在另一个数组中。 结构: 列数一般为3,分别表示横向下标,纵向下标,值.(第二行开始) 第一行一般存原始数组的行数,原始数组的列数,以及有意义的值的个数。根据情况可以调整 优点:可以对数据进行压缩。*/ public static void main(String[] args) { //定义一个二维数组 System.out.println("原数组:"); int[][]a=new int[9][9]; a[1][2]=1; a[2][1]=2; a[3][3]=3; for (int i = 0; i < a.length; i++) { for (int j = 0; j < a[i].length; j++) { System.out.print(a[i][j]+"\t"); } System.out.println(); } //稀疏数组 int t=0;//定义一个值判断有用的个数 for (int i = 0; i < a.length; i++) { for (int j = 0; j < a[i].length; j++) { if (a[i][j]!=0){ t++; } } } //创建一个稀疏数组 int[][]x=new int[t+1][3]; x[0][0]=a.length; x[0][1]=a[0].length; x[0][2]=t; //将有用的数存放到稀疏数组中 int c=1;//用来记录稀疏数组中每行的数据 for (int i = 0; i < a.length; i++) { for (int j = 0; j < a[i].length; j++) { if (a[i][j]!=0){ x[c][0]=i; x[c][1]=j; x[c][2]=a[i][j]; c++; } } } //打印稀疏数组 System.out.println("稀疏数组:"); for (int i = 0; i < x.length; i++) { for (int j = 0; j < x[i].length; j++) { System.out.print(x[i][j]+"\t"); } System.out.println(); } //将稀疏数组转化为所对应的数组 //创建新数组 int[][]a2=new int[x[0][0]][x[0][1]]; //将有用的数传入数组 int c1=1; for (int i = 0; i < a2.length; i++) { for (int j = 0; j <a2[i].length ; j++) { if (i==x[c1][0]&&j==x[c1][1]){ a2[i][j]=x[c1][2]; if (c1==t)break;//防止超出稀疏数组 c1++; } } } //打印新数组 System.out.println("新数组为:"); for (int i = 0; i < a2.length; i++) { for (int j = 0; j < a2[i].length; j++) { System.out.print(a2[i][j]+"\t"); } System.out.println(); } }
-
二维数组的初始化和创建
2019-04-10 14:23:40//长度为3的一维数组,每个元素又是长度为4 char arr[3][5]; double [2][4]; //数组初始化 int arr[3][4] = {1,2,3,4}; int arr[3][4] = {{1,2},{4,5}}; int arr[][4] = {{2,3},{4,5}}; 我们一定要注意在二维数组的...二维数组的创建:
//数组创建 int arr[3][4]; //长度为3的一维数组,每个元素又是长度为4 char arr[3][5]; double [2][4]; //数组初始化 int arr[3][4] = {1,2,3,4}; int arr[3][4] = {{1,2},{4,5}}; int arr[][4] = {{2,3},{4,5}};
我们一定要注意在二维数组的创建和初始化中只有第一个[]中的数字可以省略,其他[]中不可以.
二维数组本质上也是一个一维数组,只不过每个元素又是一个一维数组.
二维数组的使用也是通过下标的方式.比如下面这个例子:#include <stdio.h> #include <stdlib.h> int main(){ int i; int j; int arr[3][4] = { 0 }; //创建一个二维数组,并将其元素初始化为0 for (i = 0; i < 3; ++i){ for (j = 0; j < 4; ++j){ arr[i][j] = i * 3 + j; //给二维数组中的元素赋值 } } for (i = 0; i < 3; ++i){ for (j = 0; j < 4; ++j){ printf("%d ",arr[i][j]); //打印出二维数组中所有的元素 } } system("pause"); return 0; }
二维数组在内存中的存储
之前我们已经了解过了一维数组在内存中的存储,所以,类似的,我们尝试将二维数组的每个元素的地址打印出来.#include <stdio.h> #include <stdlib.h> int main(){ int i,j; int arr[3][4]; for (i = 0; i < 3; ++i){ for (j = 0; j < 4; ++j){ printf("&arr[%d][%d] = %p\n",i,j,&arr[i][j]); } } system("pause"); return 0; }
结果如图:
不难看出,二维数组在内存中也是连续存储的. -
将一个数组分割成多个长度为2或者3的数组
2019-11-21 09:22:12* 分割数组创建二维数组封装 * @param data 数组 * @param senArrLen 需要分割成子数组的长度 */ splitArr(data, senArrLen){ //处理成len个一组的数据 let data_len = data.length; let arrOuter_len = ... -
用vector创建二维数组
2020-06-05 18:57:331 vector二维数组的创建和初始化 vector vec(10,90); //将10个一维动态数组初始为90 ...3 获取二维数组的长度 int size_row = vec.size(); //获取行数 int size_col = vec[0].size(); //获取列数 定义一个行列 -
二维数组
2021-01-05 18:07:00二维数组创建语法: 1.先声明、再分配空间: 数据类型[][] 数组名; 数组名 = new 数据类型[高维长度][低维长度]; 2.声明并分配空间: 数据类型[][] 数组名 = new 数据类型[高维长度][低维长度]; 3.声明并赋值(繁)... -
使用JS输出一个二维数组
2015-11-18 16:23:25使用JS创建二维数组(一维长度3,二维长度6),值为一维数组和二维数组索引值的积,如myarr[2][5]=2*5。 代码如下: 输入结果: 1 2 3 4 5 6 2 4 6 8 10 12 3 6 9 12 15 18 -
Java一维数组和二维数组(持续更新…)
2020-02-03 19:19:00数组的基础知识: 1.什么是数组: 数组是相同类型的数据按顺序组成的一种引用数据类型 提醒:数组一旦被创建,它的大小是固定的。...arr = new int[10] //创建一个长度为10的整形数组 声... -
JavaSE基础 - 二维数组的创建格式以及内存分析图
2018-03-31 19:24:51创建了一个3*2的二维数组,即二维数组的长度为3。该数组中有3个一维数组,每个一维数组中有2个元素。图解如下:解释:Java中,数组就是对象,所以在首先在栈内存中为arr开辟空间,堆内存中存放new产生的数组数据,... -
java--数组--二维数组
2018-09-10 17:00:29上面创建了一个二维数组,其中包含三个一维数组,每个一维数组的长度是5,即包含5个元素 arr[0]表示下表为0的位置上的一维数组 arr[1][3]表示要获取的元素的具体下标 2.二维数组的应用 二维数组的长度:数组名.... -
二维数组一
2013-05-12 02:21:00创建一个长度为5行4列的二维整型数组,通过初始化,为数组中的前 两列的10个元素赋初值,然后通过键盘输入,使后两列的10个元素获得值,将所有元素值乘以 3后保存在数组中。输出数组时,按行序优先输出,再按列序... -
Java基础(6)二维数组、Java中的参数传递、递归
2020-04-10 23:33:08//定义了一个int类型的二维数组,这个二维数组包含了两个长度为3的一维数组 int[][] arr = new int[2][3] 注意:一维数组的长度,可以写也可以不写,写与不写是有区别的: 写上后,在创建二维数组时,也会初始化... -
二维数组练习
2018-08-02 12:04:22量,类型为int二维数组,第一维长度为4。 2、创建一个元素类型为int的数组,该数组应包括4 个元素并被赋值到变量twoD[0]。 3、编写两个嵌套for()循环语句以打印twoD 的全部值,以矩阵的格式输出。 4、编译并运行... -
JAVA中的二维数组
2010-02-08 16:30:39for(int row[] :arr) //此时不难看出,二维数组可以看作是每个元素都是一个一维数组的一维数组 { for(int item: row) { System.out.print(item+ " "); } System.out.println(); } 补充: //... -
JAVA二维数组及杨辉三角案例
2020-12-08 21:20:00//定义了一个长度为3的二维数组 静态创建 //静态创建格式就是外面一个大括号,里面再用大括号写各个元素,逗号隔开。 int[][] arr2 = {{1,3,1},{1321,23},{1}}; int[][] arr3 = new int[][]{{2},{23,32},{123,321,... -
Java里的数组(含二维数组)
2019-08-01 17:10:57数组 1、概念 存储同一类型数据的不同元素集合 2、特点 每个数组存储的数据类型...//这里就创建了一个int整型的,长度为3的数组,即里面可以存放3个int型的数据 int arr[] = new int[3]; (2)静态初始化 静态初始... -
java中的一维数组
2020-09-27 22:15:20一、数组的概念 一组连续的存储空间,存储多个相同数据...一个长度为5的整形数组: ①数组中的每个数据格被称为“数组元素”。 ②对每个元素进行赋值或取值的操作被称为“元素的访问”。 ③访问元素时,需要使用"下 -
数据结构与算法 一:JAVA中二维数组和稀疏数组间的概念及相互转换
2020-11-19 19:22:12数据结构与算法 JAVA二维数组和稀疏数组间的相互转换 何为二维数组 以int类型为例,二维数组在java中的创建方式为: int arr[][]=new int[行数][列数];...如果我们创建一个大一些的二维数组: int arr[][]=new -
数组array、数组方法,二维数组,冒泡/选择排序
2021-01-05 19:29:11数组 array 当我们需要处理一组数据时,一定性定义...【注】前两种方式,若传入参数只有一个,且为number时,这个数字表示声明的数组的长度,而不是存放的数据。 数组的长度(长度从1开始数) arr.length 数组的下标 从 -
javaseday05(面向对象,二维数组,权限修饰符)
2017-07-27 13:06:08二维数组定义的格式 int[][] arr = new int[3][2];创建3个1维数组每个1维数组中有...syso(arr[0]) 打印二维数组中角标为0的一维数组 引用数组类型默认为空null 这样才初始化完成 一维数组的长度不固定 arr[0] = new i -
2013级C++第15周项目——二维数组
2013-12-02 08:48:53课程主页在:【项目1-折腾二维数组】创建一个长度为5行4列的二维整型数组,通过初始化,为数组中的前两列的10个元素赋初值,然后通过键盘输入,使后两列的10个元素获得值,将所有元素值乘以3后保存在数组中。... -
C++第15周项目1——折腾二维数组
2012-12-06 19:46:41折腾二维数组】创建一个长度为5行4列的二维整型数组,通过初始化,为数组中的前两列的10个元素赋初值,然后通过键盘输入,使后两列的10个元素获得值,将所有元素值乘以3后保存在数组中。输出数组时,按行序优先输出... -
LeetCode(力扣)之转置矩阵(二维数组行列长度获取方式)
2020-12-16 10:50:13题目描述: 给定一个矩阵 A, 返回 A 的转置矩阵。 矩阵的转置是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引。...因此,思路为,先获取原数组的行数和列数,然后,创建一个新多维数组,新数组的 -
二维数组--char5
2013-11-26 14:01:54创建一个长度为5行4列的二维整型数组 通过初始化,为数组中的前两列的10个元素赋初值,然后通过键盘输入,使后两列的10个元素获得值, 将所有元素值乘以3后保存在数组中。 输出数组时,按行序优先输出,再按列... -
go 遍历二维数组json_Golang学习笔记四--数组与切片
2020-12-27 15:53:05创建一个数组 */ func createArrays() { //第一种 定义数组 var arr1 [5]int //不指定数组值,默认int为0 //第二种 定义数组方式 arr2 := [3]int{1, 2, 3} //设置初始值 //可变长度的数组 ... -
C++学习笔记(第五章 二维数组及应用 之二)
2014-09-23 17:08:14【题目1-折腾二维数组】创建一个长度为5行4列的二维整型数组,通过初始化,为数组中的前两列的10个元素赋初值,然后通过键盘输入,使后两列的10个元素获得值,将所有元素值乘以3后保存在数组中。输出数组时,按行序... -
一维数组不能含有相同的数
2021-02-02 14:03:02* 创建长度为6的数组,元素值的范围1-30,并且不能有相同的数 */ //方式一 /* 数组问题三步走: 1.创建并初始化 2.赋值 (最重要) 3.遍历输出 针对需要跑完一层for循环,才能判断是否满足条件的,可添加一... -
[Java基础]数组/二维数组/查找最大元素/平均值/复制/颠倒/矩阵相乘
2018-02-07 23:10:34数组 1】数组能顺序存储相同类型的多个数据,可以通过索引访问数据 ...5】如果你创建了一个大小为N的数组,但是使用了一个小于0或者大于N-1的索引访问它,程序会抛出ArrayIndexOutOfBoundsException异常而 -
【Java】Java中多维数组的创建与打印
2020-07-21 15:30:55前言 在Java中对于多维数组的概念不是...// 创建一个长度为3的二维数组,每一个元素(一维数组)的长度为5 int[][] arr = new int[3][5] 以下定义方式是错误的,动态初始化没有指定二维数组的长度 int[][] arr = new i
-
MySQL 备份与恢复详解(高低版本 迁移;不同字符集 相互转换;表
-
python opencv lbp特征提取并显示
-
西门子 电气设备选型资料大全 (适合刚刚入行的电气工程师对设备进行选型规划)详解 报价
-
基于FPGA的verilog语言的数码管显示计数程序
-
(2021年2月18日整理)自媒体全套教程+全套工具(带操作教程)+原创实操教程+N个素材网站+赠全套副业实操课程
-
1997~2018县市社会经济主要指标.rar
-
app软件测试全栈系列精品课程
-
【花式GIS】QGIS加地图服务
-
伊顿穆勒.rar电气设备选型资料大全 (适合刚刚入行的电气工程师对设备进行选型规划)详解 报价
-
2021周记08:春困的一周
-
AcWing 1089. 烽火传递(单调队列优化dp)
-
用excel将xlsx文件转化为csv文件后,用python对csv文件进行遍历报错 invalid literal for int() with base 10: ‘‘
-
(超详细笔记记录)从头开始学Spring 其二
-
数据结构学习笔记5
-
3.2 leetcode实现 strStr()
-
修改个人报告入职用、给家人看,免费送样板
-
龙芯生态应用开发基础:C语言精要
-
MySQL 主从复制 Replication 详解(Linux 和 W
-
Windows环境安装DVWA环境
-
维纳尔.电气设备选型资料大全 (适合刚刚入行的电气工程师对设备进行选型规划)详解