跳转至

元组

相比于列表和字典这两种数据类型,元组的使用场景就少了很多,看完本节内容你会明白元组与列表的区别。

元组的创建

元组使用小括号包裹数据,如果只有一个元素需要用逗号,结尾。

>>> t1 = (1, 2, 9, 'a', None)
>>> t2 = tuple((1, 2, 9, 'a', None)) # 两种创建方式都可以
>>> t2
(1, 2, 9, 'a', None)
>>> t3 = ('Black',) # 单个元素以逗号结尾

元组的访问与遍历

元组的访问与列表一致,支持单个数字,两个和三个数字的访问方式。遍历也与列表完成一致。

for item in t2:
    print(item)

那么元组与列表的区别在哪里呢?最大的区别就是元组创建以后不能修改,只能访问和遍历操作,从而列表的增删改操作都不适与元组。

>>> t1 = (1, 2, 9, 'a', None)
>>> t1[0] = 100
exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-8-3c8e12ad4afd>", line 1, in <module>
    t1[0] = 100
TypeError: 'tuple' object does not support item assignment
>>> t1.count(1)
1
>>> t1.count(None)
1
>>> t1.index(9)
2
>>> t1.index(100) # 不存在的元素或抛出异常

补充

Python在查询数据库时,返回的结果就是tuple元组。

总结

元组数据与列表最大的区别在于元组创建以后不能修改,以至于元组的操作方法非常少。思考这样一个问题,如果元组里面的元素包含列表,列表是可修改的。是不是说元组就实现了修改呢?读者可以思考一下这个问题。

>>> l = ([1,2], 3, None)
>>> l[0].append(True)
>>> l
([1, 2, True], 3, None)

评论