在for循环中自动创建唯一变量?

use*_*327 -1 python sqlite variables tkinter

我在这里写一下,询问是否有办法让Python在for循环中自动创建新的唯一变量,在下面显示的代码的上下文中:

for row in customerdetails2:
    AA10 = Entry(CustomerEdit)
    AA10.insert(0, row[0])
    AA10.grid(row = editnum, column = 0)
    AA11 = Entry(CustomerEdit)
    AA11.insert(0, row[1])
    AA11.grid(row = editnum, column = 1)
    AA12 = Entry(CustomerEdit)
    AA12.insert(0, row[2])
    AA12.grid(row = editnum, column = 2)
    AA13 = Entry(CustomerEdit)
    AA13.insert(0, row[3])
    AA13.grid(row = editnum, column = 3)
    AA14 = Entry(CustomerEdit)
    AA14.insert(0, row[4])
    AA14.grid(row = editnum, column = 4)
Run Code Online (Sandbox Code Playgroud)

所以基本上对于Python在customerdetails2(它收集信息的数据库)中找到的每一行,我希望它创建一组新的输入字段,但是变量的名称不同,而不是所有的输入字段都被称为'AA10', 'AA11','AA12'等.这可能吗?如果没有,是否有合理的替代方案可以达到相同的效果?抱歉,我仍然是Python的新手,但提前感谢.

Cel*_*leo 5

你可以有一个条目列表:

entries = []
for index, row in enumerate(customerdetails2):
    entry = Entry(CustomerEdit)
    entry.insert(0, row[index])
    entry.grid(row = editnum, column = index)
    entries.append(entry)
Run Code Online (Sandbox Code Playgroud)

当您需要引用它们时,只需通过列表中的索引引用即可.

如果您需要保留AA1前缀,请尝试使用字典:

entries = {}
for index, row in enumerate(customerdetails2):
    entry = Entry(CustomerEdit)
    entry.insert(0, row[index])
    entry.grid(row = editnum, column = index)
    entries['AA1{}'.format(index)] = entry
Run Code Online (Sandbox Code Playgroud)

enumerate 是一个函数,它接受一个可迭代的对象并遍历该对象,并在该索引处生成索引和对象.