本帖最后由 idontwan 于 2018-3-26 08:17 编辑
我把我的核心问题简化了一下,写了这么一个代码
- a=list(range(3))
- for i in range(3):
- a[i] = list(range(2))
- t = a[-1]
- print(a[0],a[-1])
- t.remove(0)
- print(a[0],a[-1])
- class verify_:
- def __init__(self):
- self.a = list(range(5))
- for i in range(5):
- self.a[i] = list(range(5))
- self.iter = 0
- def __next__(self):
- self.iter += 1
- print(self.a)
- t = self.a[-1]
- t.remove(self.iter)
- del self.a[-1]
- for i in range(3):
- self.a.append(t)
- print(self.a)
- return self
- def __iter__(self):
- return self
- V = verify_()
- for v in V:
- if v.iter > 3:
- break
复制代码
结果发现,果然是我对python的理解有问题,比如第6行对t操作确实改变了a[-1]的值
还有后面这个迭代器,得到的结果也不是我所估计的
附上结果
——-------------------------------------------------------------
运行值 我想得到的结果
[0, 1] [0, 1] [0, 1] [0, 1]
[0, 1] [1] [0, 1] [0, 1]
运行值:
[[0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4]]
[[0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 2, 3, 4], [0, 2, 3, 4], [0, 2, 3, 4]]
[[0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 2, 3, 4], [0, 2, 3, 4], [0, 2, 3, 4]]
[[0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 3, 4], [0, 3, 4], [0, 3, 4], [0, 3, 4], [0, 3, 4]]
[[0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 3, 4], [0, 3, 4], [0, 3, 4], [0, 3, 4], [0, 3, 4]]
[[0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 4], [0, 4], [0, 4], [0, 4], [0, 4], [0, 4], [0, 4]]
[[0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 4], [0, 4], [0, 4], [0, 4], [0, 4], [0, 4], [0, 4]]
[[0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0], [0], [0], [0], [0], [0], [0], [0], [0]]
我想得到的结果:
[[0,1,2,3,4], [0,1,2,3,4], [0,1,2,3,4][0,1,2,3,4][0,1,2,3,4]]
[[0,1,2,3,4], [0,1,2,3,4], [0,1,2,3,4][0,1,2,3,4][0,2,3,4][0,2,3,4][0,2,3,4]]
[[0,1,2,3,4], [0,1,2,3,4], [0,1,2,3,4][0,1,2,3,4][0,2,3,4][0,2,3,4][0,2,3,4]]
[[0,1,2,3,4], [0,1,2,3,4], [0,1,2,3,4][0,1,2,3,4][0,2,3,4][0,2,3,4][0,3,4][0,3,4][0,3,4]]
[[0,1,2,3,4], [0,1,2,3,4], [0,1,2,3,4][0,1,2,3,4][0,2,3,4][0,2,3,4][0,3,4][0,3,4][0,3,4]]
[[0,1,2,3,4], [0,1,2,3,4], [0,1,2,3,4][0,1,2,3,4][0,2,3,4][0,2,3,4][0,3,4][0,3,4][0,4][0,4][0,4]]
[[0,1,2,3,4], [0,1,2,3,4], [0,1,2,3,4][0,1,2,3,4][0,2,3,4][0,2,3,4][0,3,4][0,3,4][0,4][0,4][0,4]]
[[0,1,2,3,4], [0,1,2,3,4], [0,1,2,3,4][0,1,2,3,4][0,2,3,4][0,2,3,4][0,3,4][0,3,4][0,4][0,4][0][0][0]]
|