#python #dictionary #tkinter
Вопрос:
from tkinter import *
main_window = Tk()
main_window.title("Register now")
frame = Frame(main_window)
frame.pack()
l_name = Label (frame, text = "Name:")
#metodo entende que é a mesma coisa que l_name.grid(row = 0, column = 0)
l_name.grid()
e_name = Entry(frame)
e_name.grid(row = 0, column =1)
l_lastname = Label(frame, text = "Last name:")
#metodo entende que é a mesma coisa que l_name.grid(row = 1, column = 0)
l_lastname.grid(row = 1)
e_lastname = Entry(frame)
e_lastname.grid(row = 1, column =1)
l_email = Label (frame, text = "E-mail:")
l_email.grid(row = 2)
e_email = Entry(frame)
e_email.grid(row = 2, column =1)
def convert_to_dict():
user = dict()
user['name'], user['last_name'], user['e-mail'] = e_name.get(), e_lastname.get(), e_email.get()
print(user)
Button(frame, text = "Send", command = convert_to_dict).grid(row=3,column =1)
Зачем мне нужен этот пользователь = dict()
команды ? Я говорю программе, что переменный пользователь-это a dict()
, и это нормально, но я хочу знать, нанесет ли put user = {}
такой же вред коду
Комментарии:
1.
user = dict()
иuser = {}
имеют тот же эффект.2. Спасибо @khelwood!
3. Вы также можете использовать
user = {"name": e_name.get(), "last__name": e_lastname.get(), ...}
Ответ №1:
Оператор user = dict()
создает новый и пустой словарь python, который затем вы заполняете содержимым в следующей строке.
Мне этот подход кажется довольно непитоническим. Я бы предпочел инициализировать и заполнить словарь за один раз, как предложил Телизард:
user = {"name": e_name.get(), "last__name": e_lastname.get(), ...}
Вы можете добиться того же с помощью этого dict()
метода, но в этом случае это может привести к большему визуальному беспорядку. Тем не менее, этот dict()
метод поставляется с кучей других удобных способов создания и заполнения словарей программными способами. например, этот ресурс дает хороший обзор: https://www.programiz.com/python-programming/dictionary
Комментарии:
1. Спасибо тебе, грмммммм!