Python学习之列表
列表基本知识:(List)是可变的序列,也是一种可以存储各种数据类型的集合,用中括号([ ])表示列表的开始和结束,元素之间用逗号(,)分隔。列表中的每一个元素提供一个对应的下标。
列表的下标也是从0开始
列表的基本操作方法
列表名.方法
方法 | 方法功能描述 |
---|---|
append | 在列表尾部增加元素 |
clear | 列表清空 |
copy | 复制生成另一个列表 |
count | 统计指定元素的个数 |
extend | 两个列表元素合并 |
index | 返回指定元素的下标 |
insert | 在指定位置插入新元素 |
pop | 删除并返回指定下标对应的元素 |
remove | 删除列表中指定元素 |
reverse | 反转列表元素顺序 |
sort | 对列表元素进行排序 |
help(list.append)提供的是英文帮助
列表元素增加操作
append方法:在列表尾部添加新元素
p=['apple','peach']
p.append('pear')
p
#['apple', 'peach', 'pear'] 使用append函数在尾部添加元素,一次只能添加一个
insert()方法:在指定位置添加元素
insert(index,元素)
p.insert(0,'watermelon')
p
#['watermelon', 'apple', 'peach', 'pear']
p.insert(1,2)
p
#['watermelon', 2, 'apple', 'peach', 'pear']
>>>
列表元素查找
index()方法查找元素
格式为:L.index(value,[start[,stop]]) L是列表元素,value是要查找的元素
start代表开始查找的下标数,stop代表结束的下标数,若查到元素,则返回第一个找到的元素下标,没有找到会报错。
list=['Jerry','Tom',1,2,3,1]
list
#['Jerry', 'Tom', 1, 2, 3, 1]
list.index('Tom')
#1
list.index(1)
#2 在列表中查找元素1,这里只查第一个
list.index(1,3)
#5从下标3开始查找元素1
list.index('b')#不存在元素,会显示出错信息
'''Traceback (most recent call last):
File "<pyshell#19>", line 1, in <module>
list.index('b')
ValueError: 'b' is not in list'''
in成员运算判断
只是判断指定元素是否在列表里
若在,返回True,否则返回False
用下标读取对应元素
list1=['Jerry',1,2,3]
list1[2]
#2
切片读取
list1=['Jerry',1,2,3]
list1[1:] #从下标1开始的列表元素
#[1,2,3]
列表元素修改
可以通过指定下标,对对应的元素进行赋值修改,与字符串相比,列表元素可以通过指定下标进行修改,具有更大的操作灵活性。
>>> list1=['Jerry',1,2,3]
>>> list1
['Jerry', 1, 2, 3]
>>> list1[3]=2 #对下标为3的元素进行修改
>>> list1
['Jerry', 1, 2, 2]
>>> list1[2]='课'# 对下标2的元素进行修改
>>> list1
['Jerry', 1, '课', 2]
列表元素删除
方法:clear()方法,pop()方法,remove()方法,del函数
clear()方法:清除列表里所有元素,使其变为空列表
>>> list=['red','blue','yellow']
>>> list
['red', 'blue', 'yellow']
>>> list.clear()
>>> list
[]
pop()方法:格式为L.pop([index]),L为列表元素,index为可选参数,指定参数时,在指定参数下标处弹出对应元素并删除,不指定参数时,默认从列表尾部弹出并删除一个元素。
>>> list=['ball1','ball2','ball3']
>>> l=list.pop(0)
>>> print(l,' ',list)
ball1 ['ball2', 'ball3'] #弹出并删除
>>> a=list.pop()
>>> print(a,' ',list)
ball3 ['ball2']
remove()方法:格式为L.remove(value),L代表列表元素,value代表需要删除的元素,当需要删除的列表元素具有多个时,一次只能删除左边第一个。
>>> list=['ball1','ball2','ball3','ball1','ball2']
>>> list
['ball1', 'ball2', 'ball3', 'ball1', 'ball2']
>>> list.remove('ball2')
>>> list
['ball1', 'ball3', 'ball1', 'ball2'] #一次删除左边第一个
del函数:可以删除列表里指定的元素,也可以把整个列表对象删除
>>> list1=['ball1','ball2','ball3']
>>> del(list1[2])
>>> list1
['ball1', 'ball2'] #删除了下标为2的列表
>>> del list1 #删除了整个列表元素,再次调用会报错
>>> list1
Traceback (most recent call last):
File "<pyshell#60>", line 1, in <module>
list1
NameError: name 'list1' is not defined
列表元素合并
“+”方法和extend()方法
extend()方法:不会导致内存地址的变化
>>> t1=['b1','b2','b3']
>>> t2=['a','b','c']
>>> t1.extend(t2)
>>> t1
['b1', 'b2', 'b3', 'a', 'b', 'c']
“+”方法合并:可能会导致内存地址号的变化
>>> t1=['b1','b2','b3']
>>> t2=['a','b','c']
>>> t1+=t2
>>> t1
['b1', 'b2', 'b3', 'a', 'b', 'c']
列表元素排序
sort()排序方法:根据ASCII码排序,格式为:L.sort(key=None,reverse=False)。L为列表对象,key为可选参数,如key=str.lower,代表把所有的元素字母从大写转化为小写。默认情况下,是增序排列,reverse=True,为减序排列。
>>> list=[1,3,4,2,0,9,7,8]
>>> list.sort()#默认增序排列
>>> list
[0, 1, 2, 3, 4, 7, 8, 9]
>>> list.sort(reverse=True) #减序排列
>>> list
[9, 8, 7, 4, 3, 2, 1, 0]
>>>
>>> list1=['Tom','tim','john','Jack']
>>> listA=list1.copy()
>>> listA.sort()#默认排序
>>> listA
['Jack', 'Tom', 'john', 'tim']
>>> listB=list1.copy()
>>> listB.sort(key=str.lower)#把大写转化为小写,在进行排序
>>> listB
['Jack', 'john', 'tim', 'Tom']
列表其他的一些方法
copy()方法:格式为L.copy(),生成的新列表,内存地址和原先地址不一致,和直接赋值有很大区别。
>>> list1=['Tom','tim','john','Jack']
>>> listA=list1.copy()
>>> listB=list1.copy()
>>> id(list1)
2539745448648
>>> id(listA)
2539745329608
>>> id(listB)
2539745271304
>>> list=list1 #直接赋值,内存地址不变
>>> id(list)
2539745448648
count()方法:格式为L.count(value),L代表列表元素,e为代表要统计的元素,可以实现对指定元素格式的统计。
>>> list=[1,1,2,3,1,4,2,3,4,5,6,7,8]
>>> list.count(1)
3
>>>
reverse()方法:L.reverse(),对列表元素永久性反向记录。反向操作后,内存地址不变。
>>> list=[1,2,3,4,5,6,7,8,9,10]
>>> list
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> list.reverse()
>>> list
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
>>>