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