python下多维数据的初始化

本文深入探讨了Python中一维、二维及三维数组的初始化方法,包括列表生成式、全循环方式及常见错误避免,解析了不同初始化方式下数组元素的内存指向特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一维数组初始化:

方式一:

nums = [1]*4
nums[0] = 4
print(nums)  # [4, 1, 1, 1]

方式二:列表生成式

nums = [1 for _ in range(4)]

 

二维数据初始:

错误方式:

nums = [[1]*3]*4
nums[0][0] = 4
print(nums)  # [[4, 1, 1], [4, 1, 1], [4, 1, 1], [4, 1, 1]]

正确方式:

nums = [[1]*3 for _ in range(4)]
nums[0][0] = 9
print(nums)  # [[9, 1, 1], [1, 1, 1], [1, 1, 1], [1, 1, 1]]

方式全循环的方式

nums = [[1 for _ in range(3)] for _ in range(4)]

 

三维数组初始化:

错误方式:

nums = [[[1]*2]*3 for _ in range(3)]
nums[0][0][0] = 9
print(nums)  # [[[9, 1], [9, 1], [9, 1]], [[1, 1], [1, 1], [1, 1]], [[1, 1], [1, 1], [1, 1]]]

正确方式:

nums = [[[1]*2 for _ in range(3)] for _ in range(3)]
nums[0][0][0] = 9
print(nums) #[[[9, 1], [1, 1], [1, 1]], [[1, 1], [1, 1], [1, 1]], [[1, 1], [1, 1], [1, 1]]]

总结: nums = [1]*4这里是将元素1的索引进行复制,而nums = [[1]*3]*4这里外层是对内层元素即[1, 1, 1]的索引进行了复制,生成的4项的指向是同一地址,也就是对数组[1, 1, 1]的浅拷贝。按此规律进行多维数组的初始化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值