马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 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
|