Python Tkinter:如何让标签显示C and D而非{C and D}
解决方法
没问题,这是因为你直接把列表对象传给了Label的text参数,Tkinter会自动把列表转换成它默认的字符串表示(带方括号和引号),而你看到的{C and D}应该是描述上的小偏差(实际是带引号的'C and D')。要让元素原样显示,只需要把列表转换成更友好的字符串格式即可,完全不用修改原列表里的元素。
具体修改很简单:
- 不要直接把返回的列表
x赋值给text,而是用str.join()方法把列表里的元素拼接成一个无多余符号的字符串,比如用逗号加空格分隔元素,这样每个元素都会原样展示。
修改后的完整代码如下:
from tkinter import * root= Tk() root.title('Letters') def test(): import random letter=['A','B','C and D'] letterslist=list() count = 0 while count <5: y= random.choice(letter) letterslist.append(y) count=count+1 return letterslist x=test() # 把列表转换成用逗号分隔的字符串,去除多余符号 label1 = Label(root, text = ', '.join(x), fg="White") label1.pack() # 别忘记添加布局方法让标签显示出来 root.mainloop()
运行后标签会显示类似A, C and D, B, C and D, A的内容,C and D会直接显示,没有任何括号或引号。如果你想让元素用其他分隔方式(比如换行),只需要把', '换成'\n'就行,这样每个元素会单独占一行。
内容的提问来源于stack exchange,提问作者Andrew Lee
相关产品推荐
相关产品推荐

