python - 在 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()
解决方案
Python 集是最简单的删除重复项的首选方法。在您的情况下,在检索 之后column_a
,但在填充您的列表框之前,构建一组item.value
s 然后从该集合中填充您的列表框。
例子:
column_a = ws['A']
my_values = {
item.value
for item in column_a
}
for value in my_values:
my_listbox.insert(END, value)
推荐阅读
- docker - openshift上的jhipster:无法访问jarfile
- angular - Angular6 不通过 API 调用预填充数据
- python - pandas to_csv ,唯一记录数减少
- java - Drools 可以在没有任何关联 POJO 类的情况下拥有 Drl 文件吗?
- javascript - 为什么数组可以在记录后_排序?
- c# - RetryWhen 和异常逻辑
- c# - 如何在 Visiblity.Collapsed 上运行 UWP FrameworkElement SizeChanged 方法?
- sirishortcuts - 将 ISO 8601 日期+时间字符串转换为日期
- html - Safari 上的动画播放状态不正确
- javascript - 我想在事件发生后停止条件 JavaScript