【问题标题】:How to create new list with name from element in other list如何使用来自其他列表中的元素的名称创建新列表
【发布时间】:2018-05-05 20:35:48
【问题描述】:

我想使用其他列表中元素的列表名称,但发生了一些错误。 如果有title_list = [A, B, C],我想列出前)B.append(test_items)

from tkinter import Tk, Button, Entry
import tkinter as tk

ent1_input = []
ent2_input = []
title_list = []
test_item_list = []
entry1 = 0
entry2 = 0

def addentry():
    ent1 = Entry(root)
    ent1.pack()
    ent1_input.append(ent1)

def click_B():
    global title

    for entry1 in ent1_input:
        title = entry1.get()
        create_window()
        title_list.append(title)

def create_window():

    def addBox2():
        ent2 = Entry(new_root)
        ent2.pack()
        ent2_input.append(ent2)

    def test_item_list_up():
        global test_items

        for i in range(0, len(title_list)):

            for entry2 in ent2_input:
                test_items = entry2.get()
                title_lsit[i].append(test_items) # <---- What do i change it

    new_root = tk.Tk()
    new_root.geometry('200x200')
    addboxButton = Button(new_root, text= title , command=addBox2)
    addboxButton.pack(side="top", expand=True, padx=1, pady=1)
    applyButton = Button(new_root, text="Apply value",command=test_item_list_up)
    applyButton.pack(side="bottom", expand=True, padx=1, pady=1)

root = Tk()
root.geometry('200x200')
root.title('initialization')
root.configure(background='green')
b = Button(root, text="Set Items", command=addentry)
b.pack(side="top", expand=True, padx=1, pady=1)
c = Button(root, text="Apply Items", command=click_B)
c.pack(side="bottom", expand=True, padx=1, pady=1)

root.mainloop()

可以查看一些示例代码,我才研究 Python 几个星期。

【问题讨论】:

  • 不清楚你在问什么。请仅在您认为遇到问题的地方发布相关代码。提及输入列表和所需的输出。
  • lsit A = [abc, xyz, rgb] 我想创建一个新列表,如下所示 list abc = [...] list xyz = [...] list rgb = [... ] 我想使用现有列表的元素作为新名称。
  • 听起来像是试图从列表中获取一个字符串,并将该字符串用作新变量的名称。那是对的吗?如果是这样,请不要这样做。动态创建的变量名导致代码非常难以理解和调试,并且没有提供真正的价值。你能解释一下为什么需要使用数据作为变量名吗?你认为这能解决什么问题?
  • 你说的没错。我需要从第一个小部件条目中进行用户输入,然后使用用户输入值制作列表。并制作几个与用户输入数量一样多的小部件。并创建一些具有第二个小部件条目值的列表。条目数量根据用户的意愿变化

标签: python-3.x list tkinter widget append


【解决方案1】:

你不能做这样的清单。你可以做一本字典。

a_list = ['a', 'b', 'c']
a_dict = dict.fromkeys(a_list, list())
for k in a_dict:
    a_dict[k].append(test_items)

【讨论】:

  • @Backjunee 我认为有一种方法可以使用 eval() 执行此操作,但我尝试了它,但它给了我一个错误。无论如何,使用 eval() 是不受欢迎的。这是我认为是在运行时创建动态列表的最佳方法。
  • 可以使用eval(),但“皱眉”是对的。但是,如果您好奇,take a look
  • 非常感谢您的建议,我比x更努力
  • @Backjunee 如果&当您确定这是您正在寻找的答案时,请单击答案旁边的复选标记并接受它。
猜你喜欢
  • 2019-08-13
  • 1970-01-01
  • 2012-10-26
  • 1970-01-01
  • 1970-01-01
  • 2022-08-16
  • 1970-01-01
  • 1970-01-01
  • 2018-01-17
相关资源
最近更新 更多