Python学习第十六天—列表4之嵌套列表

[复制链接]
15271953841 发表于 2024-2-9 06:46:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
本帖最后由 15271953841 于 2024-2-21 06:24 编辑

Python 3.12.1 (tags/v3.12.1:2305ca5, Dec  7 2023, 22:03:25) [MSC v.1937 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
列表的加法和乘法
s=[1,2,3,]
t=[4,5,6]
s+t
[1, 2, 3, 4, 5, 6]
s*3
[1, 2, 3, 1, 2, 3, 1, 2, 3]
嵌套列表
matrix=[[1,2,3],[4,5,6],[7,8,9]]
matrix
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
或者这样写:
matrix=[[1,2,3],
        [4,5,6],
        [7,8,9]]          (这样写,打印出来更直观。)
matrix
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]

for i in matrix:
    for each in i:
        print(each)

        
1
2
3
4
5
6
7
8
9
for i in matrix:
    for each in i:
        print(each,end="  ")
    print()

   
1  2  3  
4  5  6  
7  8  9  
matrix[0]
[1, 2, 3]
matrix[0][0]
1
matrix[1][1]
5
matrix[2][2]
9
A=[0]*3
A
[0, 0, 0]
for i in range(3):
    A
=[0]*3

   
A
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
B=[[0]*3]*3             (这种写法虽然能得到同样的结果,但这是犯了一种高级错误)
B
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
A[1][1]
0
B[1][1]
0
A[1][1]=1
A
[[0, 0, 0], [0, 1, 0], [0, 0, 0]]
B[1][1]=1
B
[[0, 1, 0], [0, 1, 0], [0, 1, 0]]
这到底为什么呢?为什么两者的效果不一样,为了搞懂这个问题,我们需要引入新运算符is.
x="FishC"
y="FishC"
x is y
True
字符串是不可变的,只需要开辟一个位置存放。
x=[1,2,3]
y=[1,2,3]
x is y
False
列表是可变的,所以列表内容虽然一样,但Python为它们开辟两个不同的位置存放。

B是牵一发而动全身。
A[0] is A[1]
False
A[1] is A[2]
False
B[0] is B[1]
True
B[1] is B[2]
True

关注公众号

相关侵权、举报、投诉及建议等,请发 E-mail:admin@discuz.vip

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.|鄂ICP备13007585号-4

在本发帖
关注公众号
QQ客服返回顶部