Python列表知识汇总
创建列表
#列表的创建
#空列表---------------Start---------
List_NULL = []
print(type(List_NULL))
#输出:<class 'list'>
#空列表---------------End---------
#数字列表---------------Start----------
List_NUM = [1,2,3,4,5,6]
print(List_NUM)
#输出:[1, 2, 3, 4, 5, 6]-----------
#数字列表---------------End---------
#列表可以存储任意对象--------Start--------
List_M = [1,'python',None,True,False,[1,2,3],{'电影名':'王者归来'}]
print(List_M)
#输出:[1, 'python', None, True, False, [1, 2, 3], {'电影名': '王者归来'}]
#输出---------------End---------
列表索引
#n个元素的列表索引的范围:Index 属于 [-n,n-1]
list_nu = [1,2,3,4,5,6,7,8,9]
if list_nu[0] == list_nu[-9]: # 都是1
print('列表的第一个元素(索引0)同时也是逆序第n个元素(索引-n)')
if list_nu[-1] == list_nu[9-1]: # 都是9
print('列表的第n个元素(索引n-1),同时也是列表的逆序第一个元素-1')
#n个元素的列表索引的范围:Index 属于 [-n,n-1]
for i in range(-9,9):
print('i={}: '.format(i) +'list_nu[{}]={}'.format(i,list_nu[i]))
切片
从现有列表中获取一个子列
#切片
subject_list = ['数学','语文','物理','化学','生物','地理','历史','政治']
print(subject_list)
#语法: 列表[起始:结束:步长]
#例如: subject_list[n:m]
# 获取列表中,第n+1个元素,到第m个元素即会包括起始位置元素,不包括结束位
print(subject_list[0:2]) #输出['数学','语文']
print(subject_list[2:4])#输出['物理','化学']
print(subject_list[3:5])#输出['数学','语文']
#省略起始位置,等价于从第一个作为开始
print(subject_list[:3]) #输出['数学','语文','物理']
#省略结束位置,等价于到最后一个元素
print(subject_list[2:]) #输出['物理','化学','生物','地理','历史','政治']
print(subject_list[:]) #都省略则为全列表
步长
列表步长不能为0,但是可以为负数;如果为负数就是为倒叙方式获取。
subject_list = ['数学','语文','物理','化学','生物','地理','历史','政治']
print(subject_list)
print(subject_list[::-1])
通用操作
# 符号+表示列表合并
list_demo = [1,2,3] + [4,5]
print(list_demo)
#列表乘以,表示新列表重复列表所有元素的次数
list_demo = list_demo*2
print(list_demo)
#输出结果:
#[1, 2, 3, 4, 5]
#[1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
#in用来判断元素是否在列表中
list_w = ['超人','蜘蛛侠','绿箭侠']
print('超人' in list_w) # True
print('擎天柱' in list_w) # False
# not in 元素是否不在列表中
print('超人' not in list_w) # False
print('擎天柱' not in list_w) # True
list_num = [-1,1,2,3,4,5,9]
#len 获取列表长度(列表元素个数)
print(len(list_num)) # 7
print(max(list_num)) # 9
print(min(list_num)) # -1
#列表元素出现次数
# 在列表的i到j中第一次出现x的索引
list_demo = ['李世民','李时珍','李世民','李世民','李隆基','李小龙','李世民','李睿','李世民']
# index函数是获取指定元素在列表中的位置
#第一次出现的位置
print(list_demo.index('李世民')) # 0
#列表中起始位置,第一次出现目标元素的索引值
print(list_demo.index('李世民',1)) # 2
#列表中起始位置到结束位置,第一次出现目标元素的索引值
print(list_demo.index('李世民',7,9))
# s.index(x[, i[, j]]) 即为 s.index[x,起始位置,结束位置]
# 列表中从起始位置(包括起始位置)到结束位置(不包括结束位置)第一次出现的索引
# 指定元素出现的次数
print(list_demo.count('李世民'))
python官网学习
https://docs.python.org/3.8/
python官网列表知识学习
https://docs.python.org/3.8/library/stdtypes.html#sequence-types-list-tuple-range
列表元素的增删改查
subject_list = ['数学','语文','物理','化学','生物','地理','历史','政治']
print('原列表:')
print(subject_list)
#修改: 通过索引改元素
subject_list[5] = '音乐'
print(subject_list) #['数学', '语文', '物理', '化学', '生物', '音乐', '历史', '政治']
#删除del
subject_list = ['数学','语文','物理','化学','生物','地理','历史','政治']
print('原列表:')
print(subject_list)
del subject_list[4]
print(subject_list) # ['数学', '语文', '物理', '化学', '地理', '历史', '政治']
#通过切片来修改列表
subject_list = ['数学','语文','物理','化学','生物','地理','历史','政治']
print('原列表:')
print(subject_list)
subject_list[0:3] = 'abcdwe'
print(subject_list) #['a', 'b', 'c', 'd', 'w', 'e', '化学', '生物', '地理', '历史', '政治']
subject_list = ['数学','语文','物理','化学','生物','地理','历史','政治']
print('原列表:')
print(subject_list)
# list[n:n] 在索引为2的元素前面增加元素
subject_list[2:2:1] = ['美术1']
print(subject_list) #['数学', '语文', '美术1', '物理', '化学', '生物', '地理', '历史', '政治']
print(subject_list[3:2:-1]) # ['物理']
subject_list[3:2:-1] = ['美术2'] # ['数学', '语文', '美术1', '美术2', '化学', '生物', '地理', '历史', '政治']
print(subject_list)
#当设置了步长,那么元素必须和切片的数量一致
subject_list = ['数学','语文','物理','化学','生物','地理','历史','政治']
print('原列表:')
print(subject_list)
print(subject_list[1:6:2])
subject_list[1:6:2] = ['美术','德育','编程']
print(subject_list)
#切片删除元素
subject_list = ['数学','语文','物理','化学','生物','地理','历史','政治']
print('原列表:')
print(subject_list)
subject_list[:3] = []
print(subject_list)
#不可变序列字符串,无法通过索引修改
s='python'
print(s[:]) # python
print(s[1:2]) # y
#s[0] = 'P'
#print(s) #TypeError: 'str' object does not support item assignment
#可以牵制转换为列表
s='python'
print(s)
s = list(s)
s[0] = 'P'
print(s)
列表的方法
subject_list = ['数学','语文','物理','化学','生物','地理','历史','政治']
print('原列表:')
print(subject_list)
# append() 后面追加新元素
subject_list.append('体育')
print(subject_list)
#insert() 向列表指定位置插入元素即在目标索引元素前面增加新元素
subject_list = ['数学','语文','物理','化学','生物','地理','历史','政治']
print('原列表:')
print(subject_list)
subject_list.insert(2,'物理1')
print(subject_list)
#extend() 使用新的序列来拓展
subject_list = ['数学','语文','物理','化学','生物','地理','历史','政治']
print('原列表:')
print(subject_list)
subject_list.extend(['法语']) #等价于 subject += '法语'
print(subject_list) #['数学', '语文', '物理', '化学', '生物', '地理', '历史', '政治', '法语']
subject_list.extend(['俄语','日语'])
print(subject_list)#['数学', '语文', '物理', '化学', '生物', '地理', '历史', '政治', '法语', '俄语', '日语']
#clear() 清除列表
#subject_list.clear()
#pop()根据索引删除并返回元素
subject_list = ['数学','语文','物理','化学','生物','地理','历史','政治']
print('原列表:')
print(subject_list)
subject_list.pop(5)
print(subject_list) # ['数学', '语文', '物理', '化学', '生物', '历史', '政治']
#如果pop不传递索引值就删除最后一个元素
subject_list.pop()
print(subject_list) # ['数学', '语文', '物理', '化学', '生物', '历史']
#remove() 删除指定值的元素(只删除掉第一个指定元素)
list_demo = ['李世民','李时珍','李世民','李世民','李隆基','李小龙','李世民','李睿','李世民']
print(list_demo)
list_demo.remove('李世民')
print(list_demo) #['李时珍', '李世民', '李世民', '李隆基', '李小龙', '李世民', '李睿', '李世民']
# reverse() 翻转列表(把列表变成逆序)
subject_list = ['数学','语文','物理','化学','生物','地理','历史','政治']
print('原列表:')
print(subject_list)
subject_list.reverse()
print(subject_list) # ['政治', '历史', '地理', '生物', '化学', '物理', '语文', '数学']
#sort() 队列表进行排序
list_m = list('17843290643388')
print(list_m) # '1', '7', '8', '4', '3', '2', '9', '0', '6', '4', '3', '3', '8', '8']
list_m.sort() #顺序为从小到大 等价于 list_m.sort(reverse=Flase)
print(list_m) # ['0', '1', '2', '3', '3', '3', '4', '4', '6', '7', '8', '8', '8', '9']
list_m = list('17843290643388')
print(list_m) # ['1', '7', '8', '4', '3', '2', '9', '0', '6', '4', '3', '3', '8', '8']
list_m.sort(reverse=True)
print(list_m) # ['9', '8', '8', '8', '7', '6', '4', '4', '3', '3', '3', '2', '1', '0']
遍历列表
subject_list = ['数学','语文','物理','化学','生物','地理','历史','政治']
print('原列表:')
print(subject_list)
for i in subject_list:
print(i,end=' ') #数学 语文 物理 化学 生物 地理 历史 政治
print(end='\n')
#range(start,stop,step)
#默认从0开始,如range(6) #步长默认为1
print(list(range(6)))
print(type(range(6)))
for i in range(6):
print(subject_list[i],end=' ')
print(end='\n')
print(list(range(0,10,2)))
print(list(range(1,10,2)))