Python 在生成器或其他解决方案中递增计数
我试图通过获取一堆条目小部件的内容来创建一个2D列表,但我不知道如何创建列表 我试着做一个发电机Python 在生成器或其他解决方案中递增计数,python,python-3.x,list,tkinter,Python,Python 3.x,List,Tkinter,我试图通过获取一堆条目小部件的内容来创建一个2D列表,但我不知道如何创建列表 我试着做一个发电机 hwklist = [[student, entries[i].get()] for student in student_group_list] 但是为了让它工作,我需要增加I来区分不同的条目窗口小部件,因为条目是所有条目的列表,我想不出用生成器实现这一点的方法 下面,您可以看到我的解决方案,摆脱了生成器,但现在列表是覆盖每次迭代。我想让它继续追加 学生组列表的一个例子是: 学生组列表=['BE
hwklist = [[student, entries[i].get()] for student in student_group_list]
但是为了让它工作,我需要增加I
来区分不同的条目窗口小部件,因为条目
是所有条目的列表,我想不出用生成器实现这一点的方法
下面,您可以看到我的解决方案,摆脱了生成器,但现在列表是覆盖每次迭代。我想让它继续追加
学生组列表的一个例子是:
学生组列表=['BERRY-SMITH Finlay','EDWARDS Elizabeth','GREGORY Isabella','Hendley Jones Annabel','LIS Natalia','MANNING Sophie','RATCLIFFE George','BELLAMY Jacob','BOUGHTON Grace','GARNETT Archie','Maruta Kudzai','DAVELIS Alexander DENMAN David','JENKIN Jonathan LISTER Thomas','CLOWES Edward','OGG Holly','PUGH Billy']
如果您需要创建输入框字段,则应了解我使用的内容:
root = Tk()
entries = []
for f in range (len(student_group_list)
markentry = Entry(root)
entries.append(markentry)
markentry.pack()
but = Button(root, command = lambda: 2dlist(entries))
but.pack()
我当前的代码:
def 2dlist(entries):
i = 0
for student in student_group_list:
hwklist = [[student, entries[i].get()]]
i = i + 1
print (hwklist)
输出应如下所示:
['BERRY-SMITH Finlay','3'],['EDWARDS Elizabeth','5'],['GREGORY Isabella','6'],['Hendley-Jones Annabel','1'],['LIS Natalia','7'],['MANNING Sophie','3'],['RATCLIFFE George','8'],['BELLAMY Jacob','7'].
等等,这取决于用户在输入小部件中输入的内容
现在我只得到了
[['PUGH Billy','7']]
,因为它是列表中的最后一项。您可以使用zip
进行理解
hwklist = [[student, entry.get()] for student, entry in zip(student_group_list, entries)]
或者,如果必须使用切片表示法,请使用枚举:
hwklist = [[student, entries[i].get()] for i, student in enumerate(student_group_list)]
您可以使用zip
进行理解
hwklist = [[student, entry.get()] for student, entry in zip(student_group_list, entries)]
或者,如果必须使用切片表示法,请使用枚举:
hwklist = [[student, entries[i].get()] for i, student in enumerate(student_group_list)]
2dlist
函数正在为循环的每次执行使用一个新的、独立创建的列表覆盖hwklist
。如果希望函数维护一个运行列表,则只需定义一次变量:
def 2dlist(entries):
i = 0
hwklist = []
for student in student_group_list:
hwklist.append([student, entries[i].get()])
i = i + 1
print (hwklist)
2dlist
函数正在为循环的每次执行使用一个新的、独立创建的列表覆盖hwklist
。如果希望函数维护一个运行列表,则只需定义一次变量:
def 2dlist(entries):
i = 0
hwklist = []
for student in student_group_list:
hwklist.append([student, entries[i].get()])
i = i + 1
print (hwklist)
3
从哪里来,在['BERRY-SMITH Finlay',3']
中?你有没有试着列举学生组列表
?你拥有的不是a,而是a。3
从哪里来,在['BERRY-SMITH Finlay',3']
?您是否尝试列举学生小组列表
?您拥有的不是a,而是a。