Python——二维数组遍历操作

 

一、遍历数组(操作Value)

1.使用二维列表遍历二维数组

python 创建List二维列表

lists = [[] for i in range(3)]  # 创建的是多行三列的二维列表
for i in range(3):
    lists[0].append(i)
for i in range(5):
    lists[1].append(i)
for i in range(7):
    lists[2].append(i)
print("lists is:", lists)
# lists is: [[0, 1, 2], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4, 5, 6]]

 输出数组行和列数

# 输出数组的行和列数
arr = [[1,4,7,10,15], [2,5,8,12,19], [3,6,9,16,22], [10,13,14,17,24]]
print arr.shape  # (4, 5)
# 只输出行数
print arr.shape[0] # 4
# 只输出列数
print arr.shape[1] # 5

或者:

In [48]: arr = [[1,4,7,10,15], [2,5,8,12,19], [3,6,9,16,22], [10,13,14,17,24]]

In [49]: len(arr)  #行数
Out[49]: 4

In [50]: len(arr[0]) #列数
Out[50]: 5

 


使用二维列表索引遍历二维列表

  • 注意python中二维列表和matlab以及C和JAVA中一样,不需要每行中列的数量相等

 

sum_0 = 0
for i in range(len(lists)):
    for j in range(len(lists[i])):
        print(lists[i][j])
        sum_0 += lists[i][j]
print("The sum_0 of Lists:", sum_0)

# 0
# 1
# 2
# 0
# 1
# 2
# 3
# 4
# 0
# 1
# 2
# 3
# 4
# 5
# 6
# The sum of Lists: 34

使用二维列表句柄遍历二维列表

sum_1 = 0
for i in lists:
    for j in i:
        sum_1 += j

print("The sum_1 of Lists:", sum_1)
# The sum_1 of Lists: 34

 

2.利用二维列表索引(类似C++)

 注:一定要确保二维列表每行列数相同,否则会报错。因为Python允许二维数组列数不同

import numpy as np
world=np.zero([5,5])
for i in range(0,world.shape[0])
    for j in range(0,world.shape[1])
        print (world[i][j])

3.利用列表句柄

list2d = [[1,2,3],[4,5]]
sum = 0
for i in list2d:
    for j in i:
        sum += j

 

 

### 一维数组与二维数组的概念 #### 一维数组 一维数组是一系列相同类型的元素组成的线性集合,这些元素通过单一索引访问。每个元素占据连续的内存位置[^1]。 在一维数组中,数据按照单一线性顺序排列。例如,在Python中可以通过列表来表示一维数组: ```python one_dimensional_array = [1, 2, 3, 4, 5] ``` #### 二维数组 二维数组是由多个一维数组构成的数据结构,通常用于表示表格形式的数据集。它具有行列两重索引来定位特定元素的位置。 在编程语言如C++或Python (借助NumPy库) 中,可以创建如下所示的二维数组: ```python import numpy as np two_dimensional_array = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] # 或者使用 NumPy 创建更高效的多维数组对象 np_two_dimenstional_array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) ``` ### 区别 - **维度不同**: 一维数组只有一个方向上的长度;而二维数组则有两个方向——行数和列数。 - **存储方式差异**: 尽管两者都可能被存放在一段连续的内存空间里,但它们内部组织形式有所区别。对于二维数组而言,其实际布局可能是按照行优先或是列优先的方式展开成一片平坦区域内的地址序列。 - **操作复杂度增加**: 当处理二维数组时,由于存在额外的一个维度,因此涉及到的操作会更加复杂一些,比如遍历、查找等都需要考虑两个坐标轴的变化情况。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值