在python中使用tkinter在标签中打印列表时删除大括号

时间:2017-08-23 20:08:57

标签: python tkinter

我在python中开发的Tkinter窗口中打印一个列表作为标签,但是当我这样做时,在新行的开头有大括号。当我删除它们时,它会将所有行合并为一个不是我需要的行。

任何帮助表示赞赏。感谢

这是代码部分。该列表包含外部文件中的行:

file = open("Males.txt","r")
    read1=file.readlines()
    male = "Male"

    read1 = str(read1)

    read1.strip("}")
    malereport = Label(top, text=read1)
    malereport.pack()

Here's the result from printing

2 个答案:

答案 0 :(得分:1)

您需要将列表转换为字符串。

这说明了隐式和显式转换为字符串之间的区别:

import tkinter as tk

data = ["one\ntwo", "three\nfour", "five\nsix"]

root = tk.Tk()

l1 = tk.Label(root, text=data)
l2 = tk.Label(root, text=" ".join(data))

l1.pack(side="top", fill="x", padx=4, pady=4)
l2.pack(side="top", fill="x", padx=4, pady=4)

root.mainloop()

答案 1 :(得分:0)

看到Bryan的示例使用join()对整个列表起作用我将为那些想要使用其中一些列表但不是全部列表的人提供示例。

我们可以使用format()

来实现这一目标
import tkinter as tk

root = tk.Tk()

data = ["one", "two", "three", "four"]

l1 = tk.Label(root, text="{} {}".format(data[0], data[2])).pack()

root.mainloop()

结果将是一个标签为one three的窗口,没有括号,如下图所示:

enter image description here