我正在写这里,询问是否有办法让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)
基本上,对于Python在customerdetails2中找到的每一行(它正在从中收集信息的数据库),我希望它创建一组新的输入字段,但是变量的名称不同,而不是所有被调用的输入字段#39; AA10',' AA11',' AA12'等。这可能吗?如果没有,是否有合理的替代方案可以达到相同的效果? 抱歉,我仍然对Python很陌生,但提前感谢。
答案 0 :(得分:5)
您可以拥有list条目:
entries = []
for index, row in enumerate(customerdetails2):
entry = Entry(CustomerEdit)
entry.insert(0, row[index])
entry.grid(row = editnum, column = index)
entries.append(entry)
当您需要引用它们时,只需通过列表中的索引引用。
如果您需要保留AA1
前缀,请尝试dictionary:
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
enumerate
是一个函数,它接受一个可迭代的对象并遍历该对象,并在该索引处产生索引和对象。