序列结构
一、 python序列概述
- Python 序列是用来存储大量数据的容器类结构,类似其它语言中的数组。
- Python中常用的序列结构有:列表、元组、字典、集合,字符串等。
1、列表list
-
在形式上所有元素放在一对方括号[]中,相邻元素之间使用逗号分隔。
eg:
[1,2,3,4,5]
-
同一个列表中元素的数据类型可以各不相同。
eg:
[1,’a ’,2,3[10,20]]
-
如果只有一对方括号而没有任何元素则表示空列表。
eg:
[]
2、列表的创建
- ① 使用“=”直接将一个列表赋值给变量。
#列表的创建一
a_list ['a','b','python','z','example']
b_list = [] #创建空列表
- ② 使用list()函数把range对象、字符串等可迭代对象转换为列表。
#列表的创建一
c_list = list(range(10))#使用list()内置函数
d_list = list('hello')
print(c_list) #[0,1,2,3,4,5,6,7,8,9]
print(d_list) #['h','e','l','l','o']
二、访问列表中的值
- 与字符串的索引一样,列表索引从 0 开始,第二个索引是 1,依此类推。通过索引列表可以进行截取、组合等操作。
eg:
list = ['red', 'green', 'blue', 'yellow', 'white', 'black']
print( list[0] )
print( list[1] )
print( list[2] )
以上实例输出结果:
red
green
blue
- 索引也可以从尾部开始,最后一个元素的索引为 -1,往前一位为 -2,以此类推。
eg:
list = ['red', 'green', 'blue', 'yellow', 'white', 'black']
print( list[-1] )
print( list[-2] )
print( list[-3] )
以上实例输出结果:
black
white
yellow
- 使用下标索引来访问列表中的值,同样你也可以使用方括号 [] 的形式截取字符,如下所示:
eg:
nums = [10, 20, 30, 40, 50, 60, 70, 80, 90]
print(nums[0:4])
以上实例输出结果:
[10, 20, 30, 40]
- 使用负数索引值截取:
eg:
list = ['Google', 'Runoob', "Zhihu", "Taobao", "Wiki"]
# 读取第二位
print ("list[1]: ", list[1])
# 从第二位开始(包含)截取到倒数第二位(不包含)
print ("list[1:-2]: ", list[1:-2])
以上实例输出结果:
list[1]: Runoob
list[1:-2]: ['Runoob', 'Zhihu']
三、更新列表
- 可以对列表的数据项进行修改或更新,也可以使用 append() 方法来添加列表项,如下所示:
list = ['Google', 'Runoob', 1997, 2000]
print ("第三个元素为 : ", list[2])
list[2] = 2001
print ("更新后的第三个元素为 : ", list[2])
以上实例输出结果:
第三个元素为 : 1997
更新后的第三个元素为 : 2001
四、删除列表元素
- 可以使用 del 语句来删除列表的的元素,如下所示:
list = ['Google', 'Runoob', 1997, 2000]
print ("原始列表 : ", list)
del list[2]
print ("删除第三个元素 : ", list)
以上实例输出结果:
原始列表 : ['Google', 'Runoob', 1997, 2000]
删除第三个元素 : ['Google', 'Runoob', 2000]
- pop() 删除指定位置上的元素(默认是最后一个) 如下所示:
L4 = [6,7,8,9,10]
L4.pop(1) #索引下标为1的位置上的元素被删除
print(L4)
>>>[6,8,9,10] #7被删除
L3 = [6,7,8,9,10]
L3.pop() #不指定位置是默认删除列表中尾部元素
print(L3)
>>>[6,7,8,9]
- remove()删除列表中第一个值与指定值相等的元素。 如下所示:
L5 = [1,2,1,1,1,2]
L3.remove(2)
print(L5)
>>>[1,1,1,2] #列表中首次出现的数字2被删除
五、列表推导式
- 逻辑上等价于一个循环语句,可以对列表进行遍历、过滤或再次计算,快速生成满足特定需求的新列表。
- 语法:
[express for expr1 in sequence1 if condition1]
工作原理: for循环后面跟的if判断语句,用于过滤掉那些不满足条件的结果项。
eg1:
print([i for i in range(10)]) #生成列表[0,1,2,3...9]
eg2:
print([i for i in range(10) if i%2==0]) #输出0-9之间的偶数
eg3:
fruit = [' banana ','apple ',' peach']
f1 = [i.strio() for i in fruit] #去除fruit中元素两边的空格
print(f1)
>>>#['banana','apple','peach']
六、Python列表脚本操作符
- 列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。
Python 表达式 | 结果 | 描述 |
---|---|---|
len([1, 2, 3]) | 3 | 长度 |
[1, 2, 3] + [4, 5, 6] | [1, 2, 3, 4, 5, 6] | 组合 |
[‘Hi!’] * 4 | [‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’] | 重复 |
3 in [1, 2, 3] | True | 元素是否存在于列表中 |
for x in [1, 2, 3]: print(x, end=" ") | 1 2 3 | 迭代 |
七、嵌套列表
- 使用嵌套列表即在列表里创建其它列表。
>>>a = ['a', 'b', 'c']
>>> n = [1, 2, 3]
>>> x = [a, n]
>>> x
[['a', 'b', 'c'], [1, 2, 3]]
>>> x[0]
['a', 'b', 'c']
>>> x[0][1]
'b'
八、Python列表函数&方法
Python包含以下函数:
序号 | 函数 | 描述 |
---|---|---|
1 | len(list) | 列表元素个数 |
2 | max(list) | 返回列表元素最大值 |
3 | min(list) | 返回列表元素最小值 |
4 | list(seq) | 将元组转换为列表 |
Python包含以下方法:
序号 | 方法 | 描述 |
---|---|---|
1 | list.append(obj) | 在列表末尾添加新的对象 |
2 | list.count(obj) | 统计某个元素在列表中出现的次数 |
3 | list.extend(seq) | 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表 |
4 | list.index(obj) | 从列表中找出某个值第一个匹配项的索引位置 |
5 | list.insert(index, obj) | 将对象插入列表 |
6 | list.pop([index=-1]) | 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值 |
7 | list.remove(obj) | 移除列表中某个值的第一个匹配项 |
8 | list.reverse() | 反向列表中元素 |
9 | list.sort( key=None, reverse=False) | 对原列表进行排序 |
10 | list.clear() | 清空列表 |
11 | list.copy() | 复制列表 |