Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在生成器或其他解决方案中递增计数_Python_Python 3.x_List_Tkinter - Fatal编程技术网

Python 在生成器或其他解决方案中递增计数

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

我试图通过获取一堆条目小部件的内容来创建一个2D列表,但我不知道如何创建列表

我试着做一个发电机

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。