首页 > 解决方案 > 为什么 Python 列表可以使用括号或括号,但如果一个元素只能使用括号?

问题描述

我在很多个月前忘记了我的一门介绍课后进入了 Python ......我称之为代码

filedialog.askopenfilename(filetypes = (("TCX files","*.tcx"),("All files","*.*")))  # Works

它有效。我决定只需要 *.tcx 文件,所以我使用

filedialog.askopenfilename(filetypes = (("TCX files","*.tcx")))                      # Doesn't work

filedialog.askopenfilename(filetypes = ("TCX files","*.tcx"))                        # Doesn't work

没有骰子 - 我明白了

“错误的文件类型“*.tcx”,应该是“typeName {extension ?extensions ...?}”

但后来我尝试

filedialog.askopenfilename(filetypes = [("TCX files","*.tcx")])                      # Works

它有效。我对 Python 想要方括号中的列表没有意见,但是第一行是否有效?Python 对单元素列表的处理是否与 N>1 根本不同?或者它可能只是 tkinter 的代码——模块(文件对话框)可以处理多态输入?

标签: pythontkinter

解决方案


看起来filetypes参数应该是一个元组序列。因此,当您("TCX files","*.tcx")用作此参数的值时,它被视为一个序列 - 哪些元素不是元组。


推荐阅读