Я пытаюсь создать 2D-список, получая содержимое множества виджетов ввода, но я не могу понять, как создать список.
Я пытался сделать это как генератор, выполнив
hwklist = [[student, entries[i].get()] for student in student_group_list]
, но для его работы мне нужно увеличить i
, чтобы различать разные виджеты ввода, так как entries
- это список всех из них, и я не могу найти способ сделатьэто с генератором.
Ниже вы можете увидеть мое решение избавиться от генератора, но теперь список перезаписывается при каждой итерации. Я хочу, чтобы он продолжал добавляться.
Примером списка групп студентов будет: student_group_list = ['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']]
, так как это последний элемент в списке.