列表是可变的。
一、list函数
使用list函数可以将其他序列数据转换为列表形式,也就是可以利用list函数进行数据类型的转换,之后会专门写一篇是说明几种数据类型转换的内容的。
>>> list(s)
['h', 'e', 'l', 'l', 'o']
>>> t = (1,2,3,4)
>>> list(t)
[1, 2, 3, 4]
二、基本的列表操作
前面已经写过了所有序列类型的数据的共有操作,那当然列表也就有索引、切片、连接、乘法、成员所属等操作了,这里不再赘述这些,有需要的同学可以查阅这篇博文。
下面来看看列表的一些基本操作。
1、改变列表:元素赋值
可以利用索引进行赋值:
>>> li = [1,2,3]
>>> li[1] = 100
>>> li
[1, 100, 3]
注意:因为Python中是先建立一个空列表,这时并不指定空间大小,而是随着你在裂变里添加数据才会在你添加的同时建立空间进行数据存储,但是当你删除一些数据的时候它可以为了不频繁的扩删空间,可能你把数据删除了它并没有把那些空间释放掉。之后会专门写一篇Python内存控制机制的。
因为建立空列表的同时没有指定空间,所以不能为一个位置不存在的元素进行赋值,因为位置不存在意味了内存中还没有建立这个元素的空间,所以不能这样赋值,除非你利用None为一个空列表进行一定空间的初始化操作,这样就建立了一个有一定空间的列表。
>>> li = [None,None,None,None]
>>> li
[None, None, None, None]
>>> li[2] = 100
>>> li
[None, None, 100, None]
>>> li[5] = 999 #不能为不存在的位置赋值
Traceback (most recent call last):
File "<pyshell#41>", line 1, in <module>
li[5] = 999
IndexError: list assignment index out of range
None是一个Python内置的值,表示空的含义。
2、删除元素
从列表中删除元素很容易,使用del语句来实现。
>>> name = ['alice','bech','ceicl','dee']
>>> del name[2]
>>> name
['alice', 'bech', 'dee']
3、分片赋值
分片是一个非常强大的功能。
<