Python 有没有办法在for循环继续时更改变量名

Python 有没有办法在for循环继续时更改变量名,python,variables,tkinter,Python,Variables,Tkinter,使用python,尝试制作纸牌游戏。我在我的计算机上保存了与卡片同名的图像,例如,AH是心的王牌,在我的计算机上保存为AH.png。此代码不起作用,因为在每次迭代继续时,它生成的图像会替换上一个图像,因为Tkinter中按钮的变量名是相同的?因此,显示的唯一图像是最终图像。有办法解决这个问题吗 import tkinter window = tkinter.Tk() cards = ['AH', 'KH', 'QH', 'JH', '10H', '9H', '8H'] # function t

使用python,尝试制作纸牌游戏。我在我的计算机上保存了与卡片同名的图像,例如,AH是心的王牌,在我的计算机上保存为AH.png。此代码不起作用,因为在每次迭代继续时,它生成的图像会替换上一个图像,因为Tkinter中按钮的变量名是相同的?因此,显示的唯一图像是最终图像。有办法解决这个问题吗

import tkinter
window = tkinter.Tk()

cards = ['AH', 'KH', 'QH', 'JH', '10H', '9H', '8H']
# function to turn the list of cards to images

number = 0
for bit in cards:
    print(bit)
    Photo = tkinter.PhotoImage(file=str(bit) + '.png')
    cardButton = tkinter.Button(window, image=Photo)
    cardButton.grid(row=5, column=number)
    number = number + 1

window.mainloop()

不要创建不同的变量,而是将所有
按钮
对象存储在将卡片“名称”映射到其按钮的
dict

window = tkinter.Tk()

cards = ['AH', 'KH', 'QH', 'JH', '10H', '9H', '8H']
# function to turn the list of cards to images

card_buttons = {}
for number, bit in enumerate(cards):
    photo = tkinter.PhotoImage(file=bit + '.png')
    card_buttons[bit] = tkinter.Button(window, image=photo)
    card_buttons[bit].grid(row=5, column=number)

window.mainloop()

你想要一份口述:
Photos[bit]=tkinter.PhotoImage(file=bit+'.png')
我是新来的,你能再解释一下吗照片部分很好,我不想删除照片。不起作用的是cardButton变量,因为它会被替换,当您再次放置它时,它会从最后一个位置删除它!标准规则:若你们有很多元素,那个么把它们放在列表或字典里。因此,在循环字典
photo=dict()
和内部循环之前,将图像放入字典
photo[bit]=tkinter.PhotoImage(file=bit+'.png')
仍不工作,只有最后一个图像出现:(即使在使用你的代码时,你确定
AH.png
KH.png
,等等实际上都是不同的图像吗?我可能误解了这个问题;如果你不需要访问单个对象,你就不需要
dict
。代码本身似乎很好;我怀疑问题在于图像本身。它们肯定是一个问题。)我会分离图像,我知道它们是有效的,因为最终的图像,在本例中,显示的是8颗心脏,其余的都有空间,也就是说,窗口是水平拉长的,所以你可以看到在某个点上有一些听起来与你显示的代码无关的东西。