python - 数组行被填充而不是单个元素
问题描述
数组行被覆盖,所以我得到了整个数组写入的最后一列。tilegrid[x][y]=n 似乎填满了整行。我称它为一行,但它是每个子数组中被覆盖的第 N 个项目。
tilegrid=[['O']*7]*9
while running>0:
my = pygetwindow.getWindowsWithTitle('HuniePop 2 - Double Date')
if my:
#left, top, right, bot = win32gui.GetWindowRect(my)
#rect=(my[0].left,my[0].top,my[0].width,my[0].height)
rect=(my[0].left,my[0].top,my[0].left+my[0].width,my[0].top+my[0].height)
#print(rect)
p = PIL.ImageGrab.grab(bbox=rect)
#p = pyautogui.screenshot(region=rect)
for y in range(0,7):
for x in range(0,9):
extract=p.crop(box=(gx+space*x,gy+space*y,gx+size+space*x,gy+size+space*y))
#name="all"+str(x)+str(y)+".png"
#extract.save(name)
n='O'
low=999999
for i in tilelist:
out=PIL.ImageChops.difference(extract,i[0])
val=ImageStat.Stat(out).sum[0]
if val<low:
low=val
n=i[1]
tilegrid[x][y]=n
#print(tilegrid[x][y],end='')
#print(tilegrid)
print(n,end='')
print()
print()
for y in range(0,7):
for x in range(0,9):
print(tilegrid[x][y],end='')
print()
print(tilegrid)
time.sleep(10)
else:
print('Window not found')
running=running-1
time.sleep(10)
如果我取消注释 #print(tilegrid) 行,我可以在 x 中的每次迭代期间看到整行都被填满。
CFPFNFSCD
DFFHSCPDX
XDHDFBXSB
NCNNXNHCF
NPNNFHHDH
SHCDSNFSP
SHCDHCBNF
DDDDDDDDD
XXXXXXXXX
BBBBBBBBB
FFFFFFFFF
HHHHHHHHH
PPPPPPPPP
FFFFFFFFF
[['D', 'X', 'B', 'F', 'H', 'P', 'F'], ['D', 'X', 'B', 'F', 'H', 'P', 'F'], ['D', 'X', 'B', 'F', 'H', 'P', 'F'], ['D', 'X', 'B', 'F', 'H', 'P', 'F'], ['D', 'X', 'B', 'F', 'H', 'P', 'F'], ['D', 'X', 'B', 'F', 'H', 'P', 'F'], ['D', 'X', 'B', 'F', 'H', 'P', 'F'], ['D', 'X', 'B', 'F', 'H', 'P', 'F'], ['D', 'X', 'B', 'F', 'H', 'P', 'F']]
解决方案
我刚刚看到有人在这里发布了一个相关问题:For loop doesn't append info correct into 2D array。我该如何解决?(Python)
您的第一行创建了对同一列表的 9 个引用。要查看它,只需运行以下命令:
tilegrid=[['O']*3]*4
tilegrid[0][0]="a"
print(tilegrid)
推荐阅读
- mongodb - 什么查询可用于将 \n 替换为 Mongodb 中所有文档的文本空间?
- html - 如何使用beautifulsoup从div包围的span中提取文本
- python - 使用python中的字符串输入数组重写多个附加替换方法的更好方法?
- r - R - 对两个相关变量进行抽样
- xcode - Xcode 10 在启动时无法启动/崩溃
- kubernetes - Helm Charts 微服务
- java - 无法调用自定义 ConstraintLayout 类的方法?
- php - 发送表格后验证单词是否正确
- linux - `gcc: error: 0": No such file or directory` 错误的性质是什么?
- reactjs - 在被移除的组件中使用函数 - 状态转换警告