如何将print(collections.Counter(wordlist))的结果作为messagebox的文本内容输出?
时间: 2023-06-07 21:07:59 浏览: 87
你可以使用tkinter库的messagebox模块来输出文本内容。你需要导入tkinter库,然后将print语句中的结果保存到一个变量中,并在messagebox.showinfo()方法中将该变量作为第二个参数传递。下面是示例代码:
```
import tkinter as tk
from tkinter import messagebox
from collections import Counter
wordlist = ['apple', 'banana', 'apple', 'cherry', 'cherry', 'cherry']
word_count = Counter(wordlist)
result_str = str(word_count)
root = tk.Tk()
root.withdraw()
messagebox.showinfo("Word counts", result_str)
```
这将在一个消息框中输出print语句的结果。注意,你需要在导入tkinter库后创建一个tk.Tk()对象并使用root.withdraw()方法隐藏主窗口。
相关问题
def show_result(): word_count=collections.Counter(wordlist) result_str=str(word_count) messagebox.showinfo("输出结果",result_str )代码如上,我的messagebox输出的文本只有count(),不能出现数字,如何修改?
你可以使用字符串的格式化方法来控制输出结果的格式,例如将result_str改为以下格式即可:
result_str = "Word count: {}" .format(word_count)
其中,'{}'为占位符,在格式化时会被替换为word_count的值。此外,你还可以在格式化时添加更多参数,例如控制数字的精度和小数点位数。
words=[] wordlist = [] def get(): words=[] text = entry2.get() words.append(text) wordlist = [] f = open('D:\Python文档保存\红楼梦.txt', 'r', encoding='utf-8') text = f.read() plt.rcParams['font.sans-serif'] = 'SimHei' sWords = jieba.lcut(text) for word in sWords: if word in words: wordlist.append(word) collections.Counter(wordlist) def show_result(): word_count=collections.Counter(wordlist) result_str="Word count:{}".format(word_count) messagebox.showinfo("输出结果", result_str) 代码如上,怎么解决输出内容{}里还是count()的问题
您好,根据您提供的代码,输出内容为"Word count:{}",但是{}没有被替换成实际的字数统计结果。要解决这个问题,需要将字数统计结果传递给format()进行格式化输出。可以改为如下代码:
```
def show_result():
word_count = collections.Counter(wordlist)
result_str = "Word count:{}".format(word_count)
messagebox.showinfo("输出结果", result_str.format(len(wordlist)))
```
在使用messagebox输出结果时,调用format()将len(wordlist)传递进去,这样就可以替换{}了。
阅读全文