Python 为什么在Tkinter画布中打印某些文本时,文本之间会出现括号?

Python 为什么在Tkinter画布中打印某些文本时,文本之间会出现括号?,python,python-3.x,dataframe,tkinter,tkinter-canvas,Python,Python 3.x,Dataframe,Tkinter,Tkinter Canvas,我正试图打印一些文本的Tkinter画布上的图像,这是做得很好。但不幸的是,一些花括号也被打印在屏幕上,而没有在打印语句中的任何地方使用它们。我从数据框中提取部分文本,并将其存储在变量中,然后再将其打印到屏幕上 我的代码如下: best_batsmen = dataset.loc[dataset.loc[dataset['Innings']>=15,'Average'].idxmax(),'Names'] message = ("The best Batsman of the Tourna

我正试图打印一些文本的Tkinter画布上的图像,这是做得很好。但不幸的是,一些花括号也被打印在屏幕上,而没有在打印语句中的任何地方使用它们。我从数据框中提取部分文本,并将其存储在变量中,然后再将其打印到屏幕上

我的代码如下:

best_batsmen = dataset.loc[dataset.loc[dataset['Innings']>=15,'Average'].idxmax(),'Names']
message = ("The best Batsman of the Tournament could possibly be: ",best_batsmen)
canvas_width = 500
canvas_height = 500
root = Toplevel()
root.geometry("700x600")
root.title("New Window")
canvas = Canvas(root, width=canvas_width, height=canvas_height)
canvas.create_text(1, 10, anchor=W, text=message)
img = ImageTk.PhotoImage(Image.open("virat.jpeg"))
canvas.create_image(0, 20, anchor=NW, image=img)
canvas.image = img
canvas.pack()
root.mainloop()

当我运行上面的代码时,它会打印{锦标赛中最好的击球手可能是:}{Virat Kohli}而不是锦标赛中最好的击球手可能是:Virat Kohli。那些花括号看起来很奇怪。有人能帮我解决这个错误吗?

它在数据集中的集合或字典中。只需将其转换为字符串,然后再显示:

string = ''.join(str(l) for l in list(name))
这将对集合中的任意数量的元素起作用。

此代码将消息设置为元组:

message = ("The best Batsman of the Tournament could possibly be: ",best_batsmen)
这将使用元组作为文本属性的值,而不将其转换为字符串:

从tcl的角度来看,该值作为一个列表传递给底层的tcl InterepMeter。当tcl将列表转换为字符串时(在将其添加到画布之前必须这样做),它会添加大括号以保留其类似列表的属性

解决方案很简单:不要将列表或元组传递给tkinter函数。首先将它们显式转换为字符串:

message = " ".join(message)
canvas.create_text(1, 10, anchor=W, text=message)
消息需要是字符串而不是元组:最好的…+也许是最好的击球手。
message = " ".join(message)
canvas.create_text(1, 10, anchor=W, text=message)