关于python:这个”文件”实体是元组吗?

Is this 'file' entity a tuple?

本问题已经有最佳答案,请猛点这里访问。
1
file = ('cropdata.txt')

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


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

1
2
3
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',

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

1
this_is_an_empty_tuple = ()  # Look mom, no comma!

至于元组是什么,它只是一个保存对其他对象引用的对象。其他对象可以按索引查找:

1
2
3
my_tuple = ('foo', 2)
my_tuple[0]  # foo
my_tuple[1]  # 2

元组也可以是iterable:

1
2
for item in my_tuple:
    ...

如果你熟悉list对象,tuple非常相似。关键的区别在于,tuple是不可变的——一旦创建,就不能更改元组(尽管您可能能够更改元组所持有的对象)。不变性(和相关的哈希性)的好处有点超出了这个问题的范围,在其他地方得到了很好的回答…如需进一步讨论,请参阅此问题或此问题。