gpt4 book ai didi

python - 将字典值导入到 Python 中的 OptionMenu 中

转载 作者:行者123 更新时间:2023-12-01 04:04:51 25 4
gpt4 key购买 nike

我现在陷入困境,确实需要一些帮助,我已经用尽了谷歌可以为我找到的所有资源,但我仍然不知道如何做我正在尝试的事情。 (如果可能的话)

在我的 python 程序中,我使用 Python 3.5.1 中的 Tkinter 来制作一个小计算器小程序。对于有问题的计算器,我创建了一个 CSV 文件并使用 csv.DictReader 导入它。

import csv
exptable = csv.DictReader(open('C:/Users/SampleInfo.csv'))

result = {}
for column in exptable:
key = column.pop('Current Level')
if key in result:
pass
result[key] = column

现在我根本不明白的部分是如何使用此导入字典中包含的信息。这是我到目前为止正在尝试的...

DropDownLevelVar = StringVar()
DropDownLevel = ttk.OptionMenu(root, {column})
DropDownLevel.grid(column=3, row=1)

这给我留下了......

Error on line 49, in module DropDownLevel = ttk.OptionMenu(root, {column})

TypeError: unhashable type: 'dict'

我尝试使用的 CSV 字典包含 2 列数据,“当前级别和总 EXP”请参阅 This for what the Data looks like.

我希望用字典中“当前级别”下列出的值填充“选项菜单”下拉列表。

我的目标是创建一个 super 简单的计算器,计算我需要杀死多少特定怪物才能达到我想要的水平。 (如果当前等级 = 55,则 500xp 之前 100 次杀戮,直到 56。)我导入了字典,以便在需要时可以一遍又一遍地引用这些值。

我对编程真的很陌生,所以如果我看起来像个十足的白痴,我很抱歉!

最佳答案

为什么不使用 this method填充你的字典?

无论如何,要正确填充结果字典:

import csv
exptable = csv.DictReader(open('C:/Users/SampleInfo.csv'))

result = {}
for column in exptable: # should actually be called `row`
key = column['Current Level']
if key not in result:
result[key] = column['Total EXP']

forif block 可以更好地写为:

for column in exptable:  # should actually be called `row`
if column['Current Level'] not in result:
result[column['Current Level']] = column['Total EXP']

如果ttk.OptionMenu想要一个字典,那么DropDownLevel = ttk.OptionMenu(root, {column})行可能应该是:

DropDownLevel = ttk.OptionMenu(root, result)

编辑:以及执行此操作的 Pythonic 方法,按照上面链接的方法:

import csv

result = {}
with open('C:/Users/SampleInfo.csv') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
if row['Current Level'] not in result: # is this check necessary?
result[row['Current Level']] = row['Total EXP']

关于python - 将字典值导入到 Python 中的 OptionMenu 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35808981/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com