奇怪的Python功能?

时间:2018-05-25 08:14:36

标签: python

早年,我发现:

123000,12

那么,为什么? 当然,后来我知道这是因为内部列表的引用。 我不认为这是个好主意。

但是又一次:

# Python code

x = [[0]*5]*5 # IMO, it will be a 5*5 2D-Array-Like
x[2][2] = 2

# I considered x will be
# [
# [0,0,0,0,0],
# [0,0,0,0,0],
# [0,0,2,0,0],
# [0,0,0,0,0],
# [0,0,0,0,0]]

# But x will be
# [
# [0,0,2,0,0],
# [0,0,2,0,0],
# [0,0,2,0,0],
# [0,0,2,0,0],
# [0,0,2,0,0]]

IMO:

x [:]必须是x的自我。 x [:] [4]必须是x的最后一个成员。 所以x将是:

x[:][4] = 4

但事实并非如此,没有变化!

那么,为什么?

并且,Python中还有其他有线案例吗? 请在下面显示。

我只是想在Python中收集看起来有些奇怪的东西,而不仅仅是关于这个问题的问题。

0 个答案:

没有答案