【问题标题】:how to edit a list of dictionary with tkinter如何使用 tkinter 编辑字典列表
【发布时间】:2018-10-04 22:04:23
【问题描述】:

我想有一种方法让用户编辑他们使用工具栏上的编辑选项卡制作的列表。我不知道我应该如何处理仍然使用字典列表的这条鲸鱼

完整代码https://pastebin.com/6VAnZTyi

#************for defining what is in the list*******************    
class My_QueryString(tkinter.simpledialog._QueryString):

      def body(self, master):
          self.bind('<KP_Enter>', self.ok) # KeyPad Enter
          super().body(master)

def list_data(title, prompt, **kw):
    d = My_QueryString(title, prompt, **kw)
    return d.result
root = Tk()

#list
def liststagering(New_List):
   for item in New_List:
      print(item)
def New_List():
    new_list = myaskstring("list", "what do you want to name this list")
    List_Data = list_data("list","what should be in this list")
    if str(new_list):
        print(new_list)
        newList = dict()
        newList['title'] = new_list
        newList['listData'] = List_Data
        List_MASTER.append(newList)
        print("title : "+new_list)
        print(List_Data)

List_MASTER = []




lll=print (List_MASTER)
def printtext():


    T = Text(root)
    T.pack(expand=True, fill='both')
    printData = ""
    print(List_MASTER)
    for i in range(len(List_MASTER)):
        printData += List_MASTER[0]['title'] +"\n"+List_MASTER [i]['listData'] + "\n";
    T.insert(END,

            printData
            ,

            )

    for printData in T:
        T.delete(0,END)

【问题讨论】:

  • 要编辑dictlist,您指定字典所在的索引,然后指定要在该字典内编辑的键。像这样:list_name[ndex_number][dict_key].

标签: python list user-interface dictionary tkinter


【解决方案1】:

在列表中编辑字典很简单。

首先你需要通过调用它所在列表的索引来获取字典。

然后您可以像往常一样编辑字典。

看看下面的例子。 我写了几个 for 循环读取或编辑列表中的字典。

list_of_dicts = [{"name":"Mike","age":30}, {"name":"Dave","age":22}, {"name":"Amber","age":24}]


for ndex, item in enumerate(list_of_dicts):
    # This will print the index number and dictionary at that index.
    print(ndex, item)


for item in list_of_dicts:
    # This will print each persons name and age of each dict in the list.
    print("The persons name is {} and they are {} years old!".format(item["name"], item["age"]))


for item in list_of_dicts:
    # this will update the age of each person by 1 year.
    item["age"] += 1
print(list_of_dicts)


# This will change Daves name to Mark.
list_of_dicts[1]["name"] = "Mark"
print(list_of_dicts[1])

如果您运行上述脚本,您应该在控制台中得到以下结果:

0 {'name': 'Mike', 'age': 30}
1 {'name': 'Dave', 'age': 22}
2 {'name': 'Amber', 'age': 24}
The persons name is Mike and they are 30 years old!
The persons name is Dave and they are 22 years old!
The persons name is Amber and they are 24 years old!
[{'name': 'Mike', 'age': 31}, {'name': 'Dave', 'age': 23}, {'name': 'Amber', 'age': 25}]
{'name': 'Mark', 'age': 23}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-12
    • 1970-01-01
    • 2023-04-10
    • 2023-03-20
    • 2011-01-23
    • 2019-02-18
    相关资源
    最近更新 更多