list和tuple都是python内置的数据类型
list
list是一个可变的有序表,所以,可以往list中追加元素到末尾:
>>> a = [‘a‘,‘b‘,‘c‘,1,2,3] >>> a.append(4) >>> a [‘a‘, ‘b‘, ‘c‘, 1, 2, 3, 4]
也可以把元素插入到指定的位置,比如索引号为1
的位置: (insert比append的性能差很多)
>>> a.insert(1,‘d‘) >>> a [‘a‘, ‘d‘, ‘b‘, ‘c‘, 1, 2, 3, 4]
要删除list末尾的元素,用pop()
方法:
>>> a [‘a‘, ‘d‘, ‘b‘, ‘c‘, 1, 2, 3, 4] >>> a.pop() 4 >>> a [‘a‘, ‘d‘, ‘b‘, ‘c‘, 1, 2, 3]
要删除指定位置的元素,用pop(i)
方法,其中i
是索引位置:
>>> a.pop(2) ‘b‘ >>> a [‘a‘, ‘d‘, ‘c‘, 1, 2, 3]
要把某个元素替换成别的元素,可以直接赋值给对应的索引位置:
>>> a[1] = 1 >>> a [‘a‘, 1, ‘c‘, 1, 2, 3]
tuple
只有1个元素的tuple定义时必须加一个逗号,
,来消除歧义:
>>> t = (1,) >>> t (1,)
来看一个“可变的”tuple:
>>> t = (‘a‘,‘b‘,[‘A‘,‘B‘]) >>> t[2][1] = ‘x‘ >>> t (‘a‘, ‘b‘, [‘A‘, ‘x‘])
表面上看,tuple的元素确实变了,但其实变的不是tuple的元素,而是list的元素。tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向‘a‘
,就不能改成指向‘b‘
,指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!
理解了“指向不变”后,要创建一个内容也不变的tuple怎么做?那就必须保证tuple的每一个元素本身也不能变。
时间: 2024-10-01 06:47:51