如何在返回列表项的标签中显示函数的结果?

我需要编写一个程序,该程序首先从csv文件读取电子邮件地址,然后提取其中的5个。我希望它显示在桌面应用程序中。按下按钮后,我不知道如何在标签字段中显示功能结果。

import csv
import random
import tkinter as tk
from tkinter import messagebox
 
with open('test.csv') as csv_plik:
    csv_reader = csv.reader(csv_plik,delimiter=',')
 
    numbers = []
    for row in csv_reader:
        number = row[0]
        numbers.append(number)
 
lenght = len(numbers)
 
def losowanie():
    i = 0
    z = 1
    while i < 5:
        lenght = len(numbers)
        y = lenght
        c = random.randint(0,y - z)
        print(numbers[c])
        numbers.remove(numbers[c])
        i+=1
 
main = tk.Tk()
main.geometry('400x400')
w = tk.Button(main,text = 'Losuj',command = main.destroy)
w.place(x=180,y=180)
 
y = tk.Label(main,text='losowanie')
y.pack()
y.place(x = 180,y = 220)
main.mainloop()

jiangpingshe 回答:如何在返回列表项的标签中显示函数的结果?

要从列表中获取5个随机值,可以使用

values = random.choices(numbers,k=5)

接下来,您必须将列表转换为一个字符串

new_text = ','.join(values)

最后,您可以替换标签中的文本

label['text'] = new_text

您必须将功能分配给按钮

command=losowanie

import csv
import random
import tkinter as tk

# --- functions ---

def losowanie():
    values = random.choices(numbers,k=5)
    new_text = ','.join(values)
    label['text'] = new_text

# --- main ---

with open('test.csv') as csv_plik:
    csv_reader = csv.reader(csv_plik,delimiter=',')

    numbers = []
    for row in csv_reader:
        number = row[0]
        numbers.append(number)


main = tk.Tk()

button = tk.Button(main,text='Losuj',command=losowanie)
button.pack()

label = tk.Label(main,text='losowanie')
label.pack()

main.mainloop()
本文链接:https://www.f2er.com/3146683.html

大家都在问