我正在尝试在python中使用make函数,并使用for循环从字典中迭代所有键或值,并且试图在函数内部分配一个全局变量,以便可以在函数外部打印键,但是只打印最后一个键:
ships = {
'playerShip1' : cv.imread(r'C:\\Users\\a\\Desktop\\desktopFolders\\pyexample\\seafightShip.jpg', cv.IMREAD_UNCHANGED),
'playership2' : cv.imread(r'C:\\Users\\a\\Desktop\\desktopFolders\\pyexample\\seafightCroped.jpg', cv.IMREAD_UNCHANGED)
}
def att():
global key
for key in ships:
global shipLoc
shipLoc = key
#it works okay here
#print(key)
att()
#quit()
#but it only prints the last key here
print(key)
quit()
答案 0 :(得分:2)
它仅打印最后一个键,因为您的print()
调用不在对键进行迭代的for
循环之外。程序到达未注释的print()
时,key
的值是它在循环内分配的最终值。要打印key
的所有值,请取消注释循环内的print(key)
调用。
答案 1 :(得分:2)
for循环key
的每次迭代都会收到一个新值。 for循环结束后,仅将key
的最后一个值分配给变量key
。