【发布时间】:2021-04-02 13:32:01
【问题描述】:
我正在尝试将文本框输入捕获为元组,并将其传递给 for 循环,该循环将为元组中的每个项目执行一个操作。理想情况下,该元组将是动态调整大小的,即程序的一次迭代可能将元组传递为(“1”,“2”,“3”),而另一个可能是(“1”)。然后,在下面的代码中,我尝试打印元组的每个项目。
import PySimpleGUI as sg
layout = [[sg.InputText('',key = '-IN-'), sg.Button("OK")]]
# Create the window
window = sg.Window("Window Name", layout, margins=(256, 144))
# Create an event loop
while True:
event, values = window.read()
if event == sg.WIN_CLOSED or event =="Cancel":
break
name = [values['-IN-']]
listLength = len(name)
# What I would like to do:
for i in range(listLength):
print(name[i])
我还没有找到很好的文档。我所知道的是,键“可以是任何东西(整数、元组、对象)。除了列表之外的任何东西。列表不是有效的键,因为在 Python 中列表不是可散列的,因此不能用作字典中的键。但是,元组可以。 " (PysimpleGUI 食谱)。
需要将密钥'-IN-' 更改为某些内容。我认为键需要分配给一个元组,但我还没有看到任何关于该语法的示例。有没有我可以参考的文档?成为元组的键应该是什么样子?我更愿意将文本框输入作为数组传递,但我还没有看到任何关于键数组的信息。
【问题讨论】:
-
这是一个元组的键:
dictionary[(1, 2, 3)] = 4 -
它不是“除了列表之外的任何东西”——它是任何可散列的东西。很多东西可能是不可哈希的。列表并不特殊。
-
提供给
InputText的文本在哪里以及如何转换为元组?你把那部分漏掉了吗?你可能把tuples and lists 混为一谈了吗? (您的name = [values['-IN-']]行将输入 in 放入列表中,而不是将其转换为 列表。)
标签: python tuples pysimplegui