1. 序列类型定义
序列是具有先后关系的一组元素
- 序列是一维元素向量,元素类型可以不同
- 类似数学运算序列:s0,s1,…,s(n-1)
- 元素间由序号引导,通过下表访问序列的特定元素
序列是一个基类类型
序列处理函数及方法
序列类型通用函数和方法
2. 列表的基础知识
2.1 列表定义
列表(list):是可变的序列型数据,也是一种可以存储各种数据类型的集合,用中括号([ ])表示列表的开始和结束,列表中的各元素之间使用半角逗号(,)分隔,且列表中每个元素都有一个对应的下标。
1)列表是序列类型的一种扩展,十分常用
- 列表是一种序列类型,创建后可以随意被修改
- 使用[ ]或list()创建,元素间用英文逗号分隔
- 列表中各元素类型可以不同,无限长度
1
2
|
a = [] #空列表 a = [ 1 , 2 , 3 ,none, 'bdshsvh' ,[ 1 , 2 , 3 , 5 ]] |
列表中的数据可以是python支持的任意数据。
2)列表的下标
列表的下表也是从0开始表示,反向则从-1开始。
2.2 列表基本操作
列表支持对集合元素进行增加、查找、修改、删除、合并操作等。
1)列表元素的增加
append()方法:存在元素的列表尾部新增元素。
1
2
3
4
5
|
>>> fruits = [ 'apple' , 5 , 'peach' , 2 , 'watermelon' , 12 ] #原有列表 >>> fruits.append( 'pear' ) #用append()方法增加新元素 >>> fruits.append( 15 ) >>> print (fruits) [ 'apple' , 5 , 'peach' , 2 , 'watermelon' , 12 , 'pear' , 15 ] |
insert()方法:可以在列表的任意指定位置增加元素。insert()方法的第一个参数为需要插入元素的列表的下表,第二个参数为指定的新增元素值。
1
2
3
4
|
>>> fruits.insert( 0 , 'starfruit' ) >>> fruits.insert( 1 , 14.2 ) >>> print (fruits) [ 'starfruit' , 14.2 , 'apple' , 5 , 'peach' , 2 , 'watermelon' , 12 , 'pear' , 15 ] |
2)列表元素查找
index()方法:语法格式l.index(value,[start[,stop]]),其中l为列表对象,value代表需要在列表中查找的元素,start代表在列表中查找元素时开始查找的下标数,stop代表查找结束时的下标数,start和stop参数可选。若查找到元素,则返回第一个找到的元素,若没有找到,则返回“valueerror…”错误信息。
1
2
3
4
5
6
7
8
9
|
>>> fruits.index( "pear" ) 8 >>> fruits.index( 1 ) traceback (most recent call last): file "<pyshell#15>" , line 1 , in <module> fruits.index( 1 ) valueerror: 1 is not in list >>> fruits.index( 2 , 5 , 12 ) 5 |
in成员运算符判断
1
2
|
>>> 'a' in fruits false |
用in判断的好处是不会产生报错信息。
用下标读取对应的元素
1
2
3
4
|
>>> fruits[ 5 ] 2 >>> fruits[ 8 ] 'pear' |
切片读取
1
2
|
>>> fruits[ 5 :] [ 2 , 'watermelon' , 12 , 'pear' , 15 ] |
3)列表元素修改
列表通过指定下标,对对应的元素进行赋值修改。
1
2
3
4
5
6
7
|
>>> ls = [ 'tom' , 1 , 5 , 8 ] >>> ls[ 2 ] = 8 >>> ls [ 'tom' , 1 , 8 , 8 ] >>> ls[ 3 ] = '元' >>> ls [ 'tom' , 1 , 8 , '元' ] |
4)列表元素修改
clear()方法:清楚列表中的所有元素。
1
2
3
4
5
|
>>> fruits.clear() >>> fruits [] >>> len (fruits) 0 |
pop()方法:语法格式l.pop([index]),l代表列表,index为可选参数,当指定index参数时,删除对应下标位置处的元素(如果指定的参数值不在列表下标数中,会报错)。pop()默认删除列表尾部的第一个元素。
1
2
3
4
5
6
7
8
9
|
>>> listpop = [ '球1' , '球2' , '球3' ] >>> get_one = listpop.pop() >>> print (get_one,'',listpop) 球 3 [ '球1' , '球2' ] >>> listpop.pop( 2 ) traceback (most recent call last): file "<pyshell#29>" , line 1 , in <module> listpop.pop( 2 ) indexerror: pop index out of range |
remove()方法:l.remove(value),l代表列表,value代表要删除的元素,如果要删除的元素有多个时,只会删除左边的第一个。
1
2
3
4
5
|
>>> listpop = [ '球1' , '球2' , '球3' , '球2' ] >>> listpop.remove( '球2' ) >>> listpop [ '球1' , '球3' , '球2' ] >>> |
del函数:可以删除指定的元素,也可以删除整个列表。
1
2
3
4
5
6
7
8
9
10
|
>>> del (listpop[ 2 ]) >>> listpop [ '球1' , '球3' ] >>> del (listpop) >>> listpop traceback (most recent call last): file "<pyshell#36>" , line 1 , in <module> listpop nameerror: name 'listpop' is not defined >>> |
5)列表元素合并
对于两个列表对象的合并,可以通过extend()方法
1
2
3
4
5
6
|
>>> team1 = [ "张三" , "李四" , "王五" ] >>> team2 = [ "tom" , "john" ] >>> team1.extend(team2) >>> team1 [ '张三' , '李四' , '王五' , 'tom' , 'john' ] >>> |
采用“+”也可以实现两个列表对象的合并,但是会改变team1的内存地址,表示team1合并后被重新定义了,不再是最初的team1.
1
2
3
4
5
6
7
8
9
10
11
12
|
>>> team1 = [ "张三" , "李四" , "王五" ] >>> team2 = [ "tom" , "john" ] >>> id (team1) 2172213272840 >>> team1.extend(team2) >>> id (team1) 2172213272840 >>> team1 = team1 + team2 >>> team1 [ '张三' , '李四' , '王五' , 'tom' , 'john' ] >>> id (team1) 2172213337736 |
6)列表元素排序
sort()方法:l.sort(key=none,reverse=false),l表示列表,key为可选参数,用于指定在作比较之前调用何种函数对元素进行处理,如key = str.lower(将大写字母转换为小写字母函数),reverse为可选参数,默认情况下为增序(一般根据ascii码从小到大对字符、数字进行排序)排序。
1
2
3
4
5
6
7
8
9
10
|
>>> fruits = [ 'banana' , 'pear' , 'apple' , 'peach' ] >>> fruit_1 = fruits.copy() >>> fruit_1.sort() >>> fruit_1 [ 'apple' , 'banana' , 'peach' , 'pear' ] >>> fruit_h = fruits.copy() >>> fruit_h.sort(reverse = true) >>> fruit_h [ 'pear' , 'peach' , 'banana' , 'apple' ] >>> |
1
2
3
4
|
fruits = [ 'banana' , 'pear' , 'apple' , 'peach' ] >>> fruit_s = fruits.copy() >>> fruit_s [ 'apple' , 'banana' , 'peach' , 'pear' ] |
7)列表其他操作方法
copy()方法:对列表进行拷贝。
1
2
3
4
5
6
7
|
>>> fruit_s = fruits.copy() >>> fruit_s [ 'banana' , 'pear' , 'apple' , 'peach' ] >>> id (fruits) 2172213342792 >>> id (fruit_s) 2172213273608 |
count()方法:对列表指定元素个数进行统计。
1
2
3
|
>>> vegetable = [ '白菜' , '青菜' , '萝卜' , '芹菜' , '菠菜' , '白菜' , '花菜' ] >>> vegetable.count( '白菜' ) 2 |
reverse()方法:对列表对象永久性反向记录。
1
2
3
4
5
|
>>> vegetable = [ '白菜' , '青菜' , '萝卜' , '芹菜' , '菠菜' , '白菜' , '花菜' ] >>> vegetable.reverse() >>> vegetable [ '花菜' , '白菜' , '菠菜' , '芹菜' , '萝卜' , '青菜' , '白菜' ] >>> |
列表解析
语法:
1
2
|
[expression for iter_val in iterable] [expression for iter_val in iterable if cond_expr] |
说明:expression为基于元素的运算表达式,如i**2,对每一个元素求平方,iter_val为从列表iterable迭代获取的元素i,if子句判断元素,cond_expr为判断元素表达式。
1
2
3
4
|
>>> nums = [i * * 2 for i in range ( 11 ) if i> 0 ] >>> nums [ 1 , 4 , 9 , 16 , 25 , 36 , 49 , 64 , 81 , 100 ] >>> |
相当于:
1
2
3
4
5
6
|
>>> nums = [] >>> for i in range ( 1 , 11 ): nums.append(i * * 2 ) >>> nums [ 1 , 4 , 9 , 16 , 25 , 36 , 49 , 64 , 81 , 100 ] >>> |
总结
本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注服务器之家的更多内容!
原文链接:https://blog.csdn.net/m0_55697123/article/details/119044540