我试图firstCord在矩阵中扫描特定索引()的八个相邻索引,并找出它的任何邻居是否存在于Cord包含一些随机坐标作为元素的另一个列表()中.如果其中的任何邻居出现在Cord列表中,那么我会将该特定坐标附加到Temp_Cord列表中.代码段如下.
当第一次满足条件时,我可以看到Temp_Cord附加了newCord值的值if newCord in Cord:.这是预期的行为.但是附加值在Temp_Cord每个其他迭代中根据变化而变化newCord,这就像Temp_Cord[0]并且newCord共享相同的内存.有人可以帮我解决这个问题.我需要追加Temp_Cord与newCord价值,只有当if newCord in Cord:条件为真.
预先感谢.
Cordlen = len(Cord)
orientation = [(-1,0), (-1,1), (0,1), (1,1), (1,0), (1,-1),(0,-1),(-1,-1)]
firstCord = [0,173]
Temp_Cord = []
while ((Arrlen) < Cordlen):
newCord = [0,0]
for i in orientation:
newCord[0] = firstCord[0] + i[0]
newCord[1] = firstCord[1] + i[1]
if newCord in Cord:
Temp_Cord.append(newCord)
Arrlen = len (Temp_Cord)
Run Code Online (Sandbox Code Playgroud)
你一遍又一遍地追加同一个名单
为什么不使用tuple这样的?
for i in orientation:
newCord = firstCord[0] + i[0], firstCord[1] + i[1]
Run Code Online (Sandbox Code Playgroud)
或者如果它需要list- 每次都做一个新的
for i in orientation:
newCord = [firstCord[0] + i[0], firstCord[1] + i[1]]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
59 次 |
| 最近记录: |