为什么python只打印字典中的最后一个键?

时间:2020-10-04 19:45:47

标签: python python-3.x list dictionary

我正在尝试在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()

2 个答案:

答案 0 :(得分:2)

它仅打印最后一个键,因为您的print()调用不在对键进行迭代的for循环之外。程序到达未注释的print()时,key的值是它在循环内分配的最终值。要打印key的所有值,请取消注释循环内的print(key)调用。

答案 1 :(得分:2)

for循环key的每次迭代都会收到一个新值。 for循环结束后,仅将key的最后一个值分配给变量key