元组数据结构
元组是以小括号开头的,它里面的数据和list的数据是一样的,但是它和list的区别是:list可以通过下标来修改里面的数据,而元组里面的数据是不可以被修改的。我们可以认为元组是无法被修改的list。
>>> myList = [1, 2, 3, 4]
>>> myList
[1, 2, 3, 4]
>>> myList[1]
2
>>> myList[1] = 10
>>> myList
[1, 10, 3, 4]
>>>
>>>
>>> myTuple = (1, 2, 3, 4)
>>> myTuple[1]
2
>>> myTuple[1] = 10
Traceback (most recent call last):
File "<pyshell#99>", line 1, in <module>
myTuple[1] = 10
TypeError: 'tuple' object does not support item assignment
有趣的元组类型
当一个元组为空的时候,它的类型是元组,如下:
>>> myTuple = ()
>>> type(myTuple)
<class 'tuple'>
当一个元组中只有一个元素时,如下:
>>> myTuple = (1)
>>> type(myTuple)
<class 'int'>
>>> myTuple = ("1")
>>> type(myTuple)
<class 'str'>
>>> myTuple = (True)
>>> type(myTuple)
<class 'bool'>
>>> myTuple = ([1, 2])
>>> type(myTuple)
<class 'list'>
>>> myTuple = ((1, 2))
>>> type(myTuple)
<class 'tuple'>
当元组中有两个及以上的元素时,它的类型是元组类型,如下:
>>> myTuple = (1, "1")
>>> type(myTuple)
<class 'tuple'>
>>> myTuple = (1, 1)
>>> type(myTuple)
<class 'tuple'>
而list就只有一种类型,即list类型,我们就不举例子了。
list的所有方法如下,
需要注意的是:虽然元组中的元素不能被更改,但是元组中的元素中的值是可以被更改的!!!
比如,我们可以更改元组中的一个list对象中的元素,但是我们不能更改list对象,代码如下:
>>> myList1 = [1, 2, 3]
>>> myList2 = [10, 20, 30]
>>> myTuple = ('a', 'b', myList1, 'c')
>>> myTuple
('a', 'b', [1, 2, 3], 'c')
>>> myTuple[2][1] = 100
>>> myTuple
('a', 'b', [1, 100, 3], 'c')
>>> myTuple[2] = myList2
Traceback (most recent call last):
File "<pyshell#146>", line 1, in <module>
myTuple[2] = myList2
TypeError: 'tuple' object does not support item assignment