Python 使用列表打印和tkinter文本框的不同输出

Python 使用列表打印和tkinter文本框的不同输出,python,tkinter,Python,Tkinter,Python还是新手,试图弄清楚为什么在打印函数时,它会以我想要的方式显示它,但在更新tkinter文本框的同一个函数中,它不能与元素很好地分离。split import tkinter root = tkinter.Tk() list1 = ["User1 : 1241234", "User2 : 32452623", "User2 : 32452345"] def func1():

Python还是新手,试图弄清楚为什么在打印函数时,它会以我想要的方式显示它,但在更新tkinter文本框的同一个函数中,它不能与元素很好地分离。split

import tkinter
root = tkinter.Tk()

list1 = ["User1  :  1241234",
         "User2  :  32452623", 
         "User2  :  32452345"]

def func1():                              
    for element in list1:
        sep_list = element.split(':')           # SPLIT
        print(sep_list)                         # PRINT looks correct
        T1.insert("end", sep_list, 'recent')    # same update to text field, but ugly

button1 = tkinter.Button(root, text="Click", command=func1)  
button1.grid(row=0, column=1, sticky='w')

T1 = tkinter.Text(root, height=18, width=40)
T1.place(x=35, y=35)

w = 400
h = 350
ws = root.winfo_screenwidth()
hs = root.winfo_screenheight()
x = (ws/2) - (w/2)
y = (hs/2) - (h/2)
root.geometry('%dx%d+%d+%d' % (w, h, x, y))
root.mainloop()
打印显示如下,这对我来说已经足够好了

['User1  ', '  1241234']
['User2  ', '  32452623']
['User2  ', '  32452345']
当文本框中填充以下内容时:

{User1  } {  1241234}{User2  } {  32452623}{User2  } {  32452345}
浏览了文档、tkinter页面等,但没有看到任何与此相关的内容。我可能刚开始了解那里的问题。这仅仅是使用输出(python与tkinter)的区别吗?有什么解决方法吗? 这似乎发生在我放入文本字段的任何列表中,在单行中添加到它们的
{}{}


我工作的最终结果是去掉了{}并且每行都有一个列表用户号。

DYZ已经指出了问题发生的原因,因为第二个参数需要是字符串而不是列表(我也不知道为什么它会添加大括号)。但是,通过将列表中的元素添加到字符串中,然后将该字符串传递给insert函数,您应该能够以您想要的格式打印信息,而不是在单独的行上。例如:

T1.insert('end', (list1[0] + ' ' + list1[1]) )

DYZ提供了一些信息

T1.插入(“结束”,sep_list,“最近”)尝试插入 单元素列表将列表拆分为T。方法insert要求 第二个参数是字符串,而不是列表。显然,卷发 大括号是insert关于如何处理意外参数的想法。 传递sep_list[0]或其他字符串以获得最佳结果

最终使用了:

for i in list1:
    T1.insert("end", (i + "\n"), 'recent')

只是好奇,如果文本没有任何逗号,为什么要
.split(',')
呢?对不起,那是错误的类型。实际上,我正在尝试
元素。拆分(“:”)
冒号,然后打印一个列表,其中用户在第一行,数字在第二行。
T1.insert(“end”,sep_list,“recent”)
尝试将单个元素列表
sep_list
插入
T
。方法
insert
要求第二个参数是字符串,而不是列表。显然,大括号是
insert
关于如何处理意外参数的想法。传递
sep\u list[0]
或其他字符串以获得最佳结果。@DYZ-谢谢,我稍微修改了一下以使其正常工作。列表1中的i以
结尾:
T1。插入(“end”,i,“recent”)
。仍然没有像我拍摄的那样的分线,但我可以查到。谢谢。是的,但是你应该自己添加新行!