Python一共有6种序列的内置类型,list和tuple是其中最常见的。6种序列的都可以进行的操作包括索引、切片,加(实际上是连接),乘(实际上是复制),检查成员是否存在。
Python list
list格式:以大括号作为识别符, 元素之间以”,”间隔, 末尾加不加”;”语法上都没错。
list = [元素1,元素2,…]; //;可省略
list的元素可以是任何数据类型,也可以是另一个list(即类型多维数组那样的嵌套类型)。
其他语言里面的数组严格限定序列里面的元素必须是同种元素,但是请注意,虽然list跟数组有操作重叠的地方,但与数组(即线性表)是完全不同的数据结构。
list1 = ['apple', 'banana', 'cabbage'];
list2 = [1, 2, 3, 4]
list3 = ['one', 2, True, 3.14];
list4 = ['abc', list1, list2];
#list里面的元素可以是同种元素 也可以是不同种元素 还可以是另一个list
基本操作
list中每个元素都分配了一个索引,从0开始,类似数组的下标,可以利用索引实现随机存取和更改。
>>> list = ['a', 'b', 'c', 'd']
>>> list[1]
'b'
>>> list[1] = 'g'
>>> list[1]
'g'
>>> del list[1] #del可以用来删除其中的元素
>>> list
['a', 'c', 'd']
Python更为优越的是,可以利用负数索引反向读取,即-1表示倒数第一个,以此类推。除此之外还可以进行截取操作。
>>> list = ['a', 'b', 'c', 'd']
>>> list[-1]
'd'
>>> list[1:]
['b', 'c', 'd']
当使用不存在的元素的索引时,会报错。
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
#事实上,最后一行英文的翻译为:索引错误: list索引超出范围。英文好事半功倍。
Python list 脚本操作符
Python表达式 | 结果 | 描述 |
---|---|---|
len([1, 2, 3,4]) | 4 | 求list长度 |
[1, 2, 3] + ['a', 'b', 'c'] | [1, 2, 3, 'a', 'b', 'c'] | “+”实际上是连接 |
['a'] * 3 | ['a','a','a'] | “*” 实际上是复制 |
3 in [1, 2, 3, 4] | True | 检查成员是否存在 |
for i in [1, 2, 3, 4] print(x) | 1 2 3 4 | 迭代 |
Python list 函数&方法
Python内置以下操作list的函数:
函数 | 说明 |
---|---|
cmp(list1, list2) | 比较两个列表的元素,比较方法与其他语言字符串的比较相同。 |
len(list) | 求列表元素个数。 |
max(list) | 返回列表元素最大值 |
min(list) | 返回列表元素最小值 |
list(tuple) | 将元组转换为列表 |
Python list包含以下方法:
方法 | 说明 |
---|---|
list.append(obj) | 在列表末尾添加新的对象 |
list.count(obj) | 统计某个元素在列表中出现的次数 |
list.extend(seq) | 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) |
list.index(obj) | 列表中找出某个值第一个匹配项的索引位置 |
list.insert(index, obj) | 将对象插入列表 |
list.pop(obj=list[-1]) | 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值 |
list.remove(obj) | 移除列表中某个值的第一个匹配项 |
list.reverse() | 反向列表中元素 |
list.sort([func]) | 对原列表进行排序 |