0.0 序列
在介绍列表之前先简单讲解下序列。
序列(sequence)是python中最基本的数据结构,序列中每个元素都有其编号即索引,第一个元素的索引为0,依次类推。python还提供了另一种编号方式,最后一个元素的索引为-1,往前-2,-3 ... 依此类推 列表 元祖 字典 集合都属于序列
列表
1.定义
列表由一系列按特定序列排列的元素组成,可以是任意类型。通常给列表指定一个复数名称。列表中每个元素类型可以不一样,访问列表中元素时采用索引形式,列表大小没有限制,可以随时修改。
列表是一个值,术语“列表值”指的是列表本身作为一个值可以保存在变量中,或传递给函数,像其他基本类型值一样,而不是指列表之内的那些值。
2. 列表的创建
- 创建列表只需要用中括号将包含的元素括起来,元素之间用逗号隔开 访问时直接按照索引标记进行访问
例:
>>> lists=[1,'a','bc',True,2.89]
>>> lists
[1, 'a', 'bc', True, 2.89]
>>> print(lists)
[1, 'a', 'bc', True, 2.89]
>>> lists[0]
1
>>> lists[-1]
2.89
>>> lists[-2]==True
True
>>>
- 列表也可以包含其他列表值,对于其子列表中的值可以用多重下标来访问
例:
>>> lists_1=[['小明','小红','大萝卜师傅'],[190,198,206]]
>>> lists_1[0][0]
'小明'
>>> lists_1[0][2]
'大萝卜师傅'
>>> lists_1[1][2]==198
False
>>>
>>> x=[]
>>> x
[]
>>> print(x)
[]
>>> #x是空列表
3.列表切片
定义列表后,可从其中获取任何部分作为新列表,需要在一对方括号中,像下标一样输入两个整数作为切割范围,两个整数之间用冒号隔开。
下面通过实例来进一步说明:
>>> lists=[0,1,2,3,'a','b','c','小明','小红','大萝卜斯基']
>>> lists[0:0]
[]
>>> lists[0:1]
[0]
>>> lists[0:3]
[0, 1, 2]
>>> lists[1:4]
[1, 2, 3]
>>> lists[1:5]
[1, 2, 3, 'a']
>>> lists[3:3]
[]
>>> lists[-2:-1]
['小红']
>>> lists[-2:0]
[]
>>> lists[9:10]
['大萝卜斯基']
>>> lists[-1:0]
[]
>>> lists[-2:]
['小红', '大萝卜斯基']
>>> lists[-1:]
['大萝卜斯基']
>>> lists[:0]
[]
>>> lists[:1]
[0]
>>> lists[:-1]
[0, 1, 2, 3, 'a', 'b', 'c', '小明', '小红']
>>> lists[:]
[0, 1, 2, 3, 'a', 'b', 'c', '小明', '小红', '大萝卜斯基']
>>>
可以看到当用两个正整数list[x:y]对列表进行切片的时候,范围为[x,y-1] 即只包含上限,特别的当选取某个x同时作为自己的上下限时,此时所切列表为空列表 x,y 为负整数时同理
也可以省略一个参数 :
lists[:y] 此时参数上限默认为第一个元素
list[x:] 此时参数下限默认为最后一个元素
4.列表的操作
除了切片以外还有一些基本操作,与字符串类似
列表操作符 | 操作符含义 |
---|---|
连接两个列表 | |
|
对列表进行整数次重复 |
len(
|
统计列表中元素的个数 |
del list(x[, start[, end ]]) | 删除(下面会详细介绍) |
for in
|
对列表进行循环举例 |
成员检查,判断 |
上代码:
>>> list1=[1,2,3,'a','b','c',True]
>>> list2=[4,5,6,'a','b','c',False]
>>> list1+list2
[1, 2, 3, 'a', 'b', 'c', True, 4, 5, 6, 'a', 'b', 'c', False]
>>> list2*3
[4, 5, 6, 'a', 'b', 'c', False, 4, 5, 6, 'a', 'b', 'c', False, 4, 5, 6, 'a', 'b', 'c', False]
>>> len(list1)
7
>>> len(list1+list2)
14
>>> for i in list1:
i
1
2
3
'a'
'b'
'c'
True
>>> 'a' in list1
True
>>>
不同于有返回值的pop() 方法。语句 del 还可以从列表中删除切片或清空整个列表
下面我们来详细操作一下
>>> list1=[0,1,2,3,4,5,6,7,8,9]
>>> del list1[0]
>>> list1
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> del list1[0:3]
>>> list1
[4, 5, 6, 7, 8, 9]
>>> del list1[:]
>>> list1
[]
>>> del list1
>>> list1
Traceback (most recent call last):
File "", line 1, in
list1
NameError: name 'list1' is not defined
>>>
5. 列表方法集合
在python官方教程有关于列表对象所有方法的介绍
5.1
list.append(x)
将元素添加到列表末尾,
等价于list1[len(list1):]=[x]
5.2
list.extend(list2)
将一个给定列表中的所有元素都添加到另一个列表中
等价于list1[len(list1):]=list2
5.3
list.insert(i,x)
在指定位置插入一个元素。
第一个参数是准备插入到其前面的那个元素的索引,例如a.insert(0, x) 会插入到整个列表之前,而 a.insert(len(a), x) 相当于 a.append(x)
5.4
list.remove(x)
删除列表中值为 x 的第一个元素。如果没有这样的元素,就会返回一个错误。
5.5
list.index(x[
list.pop([i])
从列表的指定位置删除元素,并将其返回。如果没有指定索引, a.pop() 返回最后一个元素。元素随即从列表中被删除(方法中 i 两边的方括号表示这个参数是可选的,而不是要求你输入一对方括号,你会经常在Python 库参考手册中遇到这样的标记)。
5.6
list.clear()
从列表中删除所有元素。等价于 del a[:]
5.7
list.index(x[, start[, end ]])
返回基于零的索引中值等于x的第一个元素.如果没有这个元素将会引发一个错误。可选的参数开始和结束被解释为切片符号,并用于限制搜索到列表的特定子序列。返回的索引相对于起始参数开始而不是完整序列。
5.8
list.count(x)
返回元素x在列表中出现的次数
5.9
list.sort(key=None,reverse=False)
排列列表中的元素 参数可以用于排序定制,参见python sorted函数
5.10
list.reverse()
将原列表中的元素倒置
5.11
list.copy()
返回列表的浅拷贝 等价于list1[:]
增:
对于字符串,可以通过split()函数,将字符串拆分成一个列表,默认以空格分割
例:
>>> 'i love that girl'.split()
['i', 'love', 'that', 'girl']
>>>