一、列表
(一)、列表的生成与删除
列表有三种创建方法
1.用‘=’直接将列表赋值给变量
list=[] #创建空列表
list=['a','b']
2.用 list() 将其它可迭代对象转换为列表
>>list('hello') #将字符串转换成列表
['h'.'e','l','l','o']
>>>x=list() #创建一个空列表
3.使用列表推导式生成列表
语法:a=[exp for variable in iterable if condition]
>>>alist=[x*x for x in range(10)]
相当于
>>>alist=[]
>>>for x in range(10):
alist.apend(x*x)
(二)、列表元素的增加
1.用 +号将元素添加到列表中
>>>alist=[3]
>>>alsit=alist+[4]
>>>alist
[3,4]
不过严格意义上,这并不是真的为列表添加元素,而是创建一个新列表,并将原列表和新元素复制到新列表的内存空间,由于涉及到大量元素的赋值,该操作较慢,在涉及大量元素添加时不建议使用。
2.使用列表对象的append()方法,原地修改列表。
>>>alist.append(9)
>>>alist
[3,4,9]
3.extend()方法可以将另一个可迭代对象的所有元素添加至该列表对象尾部。
>>>a=[5,2,4]
>>>a.extend([7,8,9])
>>>a
[5,2,4,7,8,9]
4.使用 insert() 方法可以在列表任意位置插入元素,但由于列表的自动内存管理功能,insert()插入后,之后所有元素都会移动,这会影响处理速度,并且导致元素下标发生变化。类似的还有remove()、pop()、del()方法。
alist=[3,4,5,7]
>>>alist.insert(3,6)
>>>alist
[3,4,5,6,7]
5.使用 * 运算符来拓展对象,将列表与乘法相乘,生成一个新列表
>>>alist=[3]
>>>alist*3
[3,3,3]
需要注意,用*运算符将包含列表的列表进行重复并创建新列表时,并不创建元素值的复制,而是创建已有元素的引用,因此,当修改其中一个值时,相应的引用也会修改。
>>>x=[[none]*2]*3
>>>x
[[none,none],[none,none],[none,none]]
>>>x[0][0]=5
>>>x
[[5,none],[5,