这个'文件'实体是一个元组吗?

0.5*_*649 -4 python

file = ('cropdata.txt') 
Run Code Online (Sandbox Code Playgroud)

我不确定是什么元组.这是file一个元组?元组与列表或字符串有何不同?

mgi*_*son 6

不,file是一个字符串.如果您是从单个对象创建元组,则它们总是需要用逗号分隔.这包括只有一个对象的元组(将逗号放在项目后面),否则,解释器将使用括号将表达式分组以进行操作.

this_is_a_tuple = ('cropdata.txt',)  # Parenthesis are used for Order-of-operations grouping
this_is_a_string = ('cropdata.txt')  # Notice, no comma.
this_is_also_a_tuple = 'cropdata.txt',
Run Code Online (Sandbox Code Playgroud)

但是,使用空括号创建一个空元组:

this_is_an_empty_tuple = ()  # Look mom, no comma!
Run Code Online (Sandbox Code Playgroud)

至于元组什么- 它只是一个包含对其他对象的引用的对象.可以通过索引查找其他对象:

my_tuple = ('foo', 2)
my_tuple[0]  # foo
my_tuple[1]  # 2
Run Code Online (Sandbox Code Playgroud)

元组也是可迭代的:

for item in my_tuple:
    ...
Run Code Online (Sandbox Code Playgroud)

如果你熟悉list物体,tuple则非常相似.关键的区别在于a tuple不可变的 - 一旦创建,你就无法改变元组(尽管你可能能够改变元组所拥有的对象).不变性(以及相关的可持续性)的好处有点超出了这个问题的范围,并且在其他地方得到了很好的回答......有关进一步的讨论,请参阅此问题此问题.