file = ('cropdata.txt')
我不确定元组是什么。这是一个元组file
?元组与列表或字符串有何不同?
答案 0 :(得分:6)
不,file
是一个字符串。如果您要从单个对象创建元组,they always need to be separated by commas。这包括仅包含单个对象的元组(将逗号放在项目后面),否则,解释器将使用括号将表达式分组以进行操作。
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',
但是,使用空括号创建一个空元组:
this_is_an_empty_tuple = () # Look mom, no comma!
至于元组是什么 - 它只是一个保存对其他对象的引用的对象。可以通过索引查找其他对象:
my_tuple = ('foo', 2)
my_tuple[0] # foo
my_tuple[1] # 2
元组也是可迭代的:
for item in my_tuple:
...
如果您熟悉list
个对象,则tuple
非常相似。关键区别在于tuple
不可变 - 一旦创建,就无法更改元组(尽管您可能能够更改元组所包含的对象)。不变性(以及相关的可持续性)的好处有点超出了这个问题的范围,并且在其他地方得到了很好的回答......有关进一步的讨论,请参阅this question或this question。