首页 > 解决方案 > 在 tkinter python 中使用 excel 中的值时,列表框中没有重复项?

问题描述

我需要避免在 tkinter 列表框中重复。这些值取自 excel 中的一列,相同的值会出现多次。我曾尝试使用排序,但那确实有效。有什么建议吗?

这是我的代码:





from tkinter import *
from tkinter import ttk
from openpyxl.workbook import workbook
from openpyxl import load_workbook

root = Tk()
root.title("Test")
root.geometry("500x500")

#Create workbook
#wb = Workbook()
#Load existing  workbook
wb = load_workbook('Test.xlsx')
# Create active worksheet
ws = wb.active

my_listbox = Listbox(root, width=40)
my_listbox.pack(pady=20)

#create variable for column
column_a = ws['A']

for item in column_a:
   my_listbox.insert(END, item.value)
my_listbox.delete(0)

root.mainloop()

标签: pythontkinterduplicates

解决方案


Python 集是最简单的删除重复项的首选方法。在您的情况下,在检索 之后column_a,但在填充您的列表框之前,构建一组item.values 然后从该集合中填充您的列表框。

例子:

column_a = ws['A']

my_values = {
   item.value
   for item in column_a
}

for value in my_values:
   my_listbox.insert(END, value)

推荐阅读