列表快速入门
- 序列:一种数据结构 (指计算器中存储数据的方式),分类:
可变序列: list...
不可变序列:字符串 元组 - 列表:可以保存任意对象
1.创建一个列表[]
lst=[1,2,3,4,'python',None,True,max(1,3,2)]
print(lst,type(lst))
>>[1,2,3,4,'python',None,True,3],
- 索引index是元素在列表中的位置,列表中每个位置都会有一个索引 索引从0开始。
索引为负数时,是从后往前数,-1是最后一个
lst=[1,2,3,4,'python',None,True,max(1,3,2)]
print(lst[2],len(lst))
# len() 列表长度值len=index+1
>>3 8
列表切片
- 切片是指从现有列表中获取一个子列表
- 可以通过切片获取指定的元素
- 语法:列表[起始:结束],包前不包后
- 切片会获取新的列表,不会影响原来的列表
hero=['钢铁侠','绿巨人','蜘蛛侠','黑寡妇','蚁人','美国队长']
print(hero[0:2])
>>['钢铁侠', '绿巨人']
print(hero[1:])
>>['绿巨人', '蜘蛛侠']
# 如果省略结束位置,则从当前位置一直截取到最后
print(hero[:2])
>>['钢铁侠', '绿巨人']
# 如果省略开始位置,则从第一个元素截取到结束位置,但不包括结束位置
print(hero[:])
>>['钢铁侠', '绿巨人', '蜘蛛侠']
# 如果省略开始和结束位置,则取的列表全部
列表步长
- 步长可以省略,默认值为1,表示每次获取元素的间隔
当步长为负值的时候,列表元素为反序排序 lst[::-1]
步长不能为0
hero=['钢铁侠','绿巨人','蜘蛛侠','黑寡妇','蚁人','美国队长']
print(hero[0:5:3])
>>['钢铁侠', '黑寡妇']
print(hero[::-1])
>>['美国队长', '蚁人', '黑寡妇', '蜘蛛侠', '绿巨人', '钢铁侠']
#当步长为负值的时候,列表元素为反序排序
print(hero[::-2])
>>['美国队长', '黑寡妇', '绿巨人']
通用操作(元组,字典同理)
- 拼接 +:将两个列表拼接成一个列表
lst=[1,2,3]
lst2=[4,5,6]
print(lst+lst2)
>>
- 可以将列表重复指定次数
print(lst*2)
>>
-
in 和not in
in 用来检测指定的元素是否在列表中
not in 用来检测指定的元素是否不在列表中
hero=['钢铁侠','绿巨人','蜘蛛侠']
print('钢铁侠' in hero)
>>True
-
min()最小值 max() 最大值
lst=[1,2,3,4,5,6]
print(min(lst),max(lst))
>>1 6
查看官网:docs.python.org/3/liberary
函数Function和方法Method的区别
- xxx() 函数
- yyy.xxx()方法==>比较特殊的函数,需要对象来应用
- s.index(x,,) 可以获取指定元素在列表中的位置
hero=['钢铁侠','绿巨人','蜘蛛侠','绿巨人','蜘蛛侠','绿巨人']
print(hero.index('绿巨人'))
>>1
print(hero.index('绿巨人',3,7))
>>3
- s.count() 可以获取指定元素在列表中的次数
hero=['钢铁侠','绿巨人','蜘蛛侠','绿巨人','蜘蛛侠','绿巨人']
print(hero.count('绿巨人'))
>>3
修改列表
- 1.通过索引直接修改
hero=['钢铁侠','绿巨人','蜘蛛侠','绿巨人','蜘蛛侠','绿巨人']
print('修改前:',hero)
hero[0]='雷神'
print('修改后:',hero)
- 2.通过del 关键字 来删除元素
del hero[2]
print('修改后:',hero)
-
- 通过切片 来修改元素
必须传递的是一个序列
- 通过切片 来修改元素
hero=['钢铁侠','绿巨人','蜘蛛侠','绿巨人','蜘蛛侠','绿巨人']
print('修改前:',hero)
hero[0:3]='abcd'
print('修改后:',hero)
hero[0:3]=123 #报错
hero[0:2]=['a','b','c']
- 向索引为0 的位置插入一个元素
hero=['钢铁侠','绿巨人','蜘蛛侠','绿巨人','蜘蛛侠','绿巨人']
print('修改前:',hero)
hero[0:0]='abcd'
print('修改后:',hero)
- 切片替换: 设置步长后 替换的序列元素数量要等于切片元素数量
hero=['钢铁侠','绿巨人','蜘蛛侠','绿巨人','蜘蛛侠','绿巨人']
print('修改前:',hero[::2])
hero[::2]=['ab','cd','ef']
print('修改后:',hero)
- 切片删除:=[]
hero=['钢铁侠','绿巨人','蜘蛛侠','绿巨人','蜘蛛侠','绿巨人']
print('修改前:',hero )
hero[1:3]=[]
print('修改后:',hero)
- 不可变序列转换为可变序列 再做修改
s='python'
s=list(s)
print('修改前:',s)
s[1]='j'
print('修改后:',s)
- 4.通过方法修改列表
append方法: 向列表最后添加元素
hero=['钢铁侠','绿巨人','蜘蛛侠' ]
print('修改前:',hero)
hero.append('123')
print('修改后:',hero)
>>修改前: ['钢铁侠', '绿巨人', '蜘蛛侠']
>>修改后: ['钢铁侠', '绿巨人', '蜘蛛侠', '123']
insert方法: 向列表中指定位置添加元素
hero=['钢铁侠','绿巨人','蜘蛛侠' ]
print('修改前:',hero)
hero.insert(2,'123')
print('修改后:',hero)
>>修改前: ['钢铁侠', '绿巨人', '蜘蛛侠']
>>修改后: ['钢铁侠', '绿巨人', '123', '蜘蛛侠']
extend方法:使用新序列多个元素 扩展列表 ,相当于加一个列表 +=['a','b']
hero=['钢铁侠','绿巨人','蜘蛛侠' ]
print('修改前:',hero)
hero.extend(['a','b'])
print('修改后:',hero)
>>修改前: ['钢铁侠', '绿巨人', '蜘蛛侠']
>>修改后: ['钢铁侠', '绿巨人', '蜘蛛侠', 'a', 'b']
clear方法: 清除列表
hero=['钢铁侠','绿巨人','蜘蛛侠' ]
print('修改前:',hero)
hero.clear()
print('修改后:',hero)
>>修改前: ['钢铁侠', '绿巨人', '蜘蛛侠']
>>修改后: []
pop()方法: 通过索引方式删除并返回执行的元素,默认是删除最后一个
hero=['钢铁侠','绿巨人','蜘蛛侠' ]
print('修改前:',hero)
r=hero.pop(2)
print('修改后:',hero)
print(r)
>>修改前: ['钢铁侠', '绿巨人', '蜘蛛侠']
>>修改后: ['钢铁侠', '绿巨人']
>>蜘蛛侠
remove()方法:删除指定值的第一个元素 无返回值
hero=['钢铁侠','绿巨人','蜘蛛侠' ]
print('修改前:',hero)
hero.remove('绿巨人')
print('修改后:',hero)
>>修改前: ['钢铁侠', '绿巨人', '蜘蛛侠']
>>修改后:['钢铁侠', '蜘蛛侠']
reverse()方法:反转列表
hero=['钢铁侠','绿巨人','蜘蛛侠' ]
print('修改前:',hero)
hero.reverse()
print('修改后:',hero)
>>修改前: ['钢铁侠', '绿巨人', '蜘蛛侠']
>>修改后: ['蜘蛛侠', '绿巨人', '钢铁侠']
sort()方法:列表排序,默认升序,sort(reverse=True) 降序
lst=list('asdfwlefmwlijqq')
print('修改前:',lst)
lst.sort() #升序
print('升序修改后:',lst)
lst.sort(reverse=True) #降序
print('降序修改后:',lst)
>>修改前: ['a', 's', 'd', 'f', 'w', 'l', 'e', 'f', 'm', 'w', 'l', 'i', 'j', 'q', 'q']
>>升序修改后: ['a', 'd', 'e', 'f', 'f', 'i', 'j', 'l', 'l', 'm', 'q', 'q', 's', 'w', 'w']
>>降序修改后: ['w', 'w', 's', 'q', 'q', 'm', 'l', 'l', 'j', 'i', 'f', 'f', 'e', 'd', 'a']
遍历列表和range()函数
遍历列表
- 遍历列表:将列表中的元素取出来
1.while 循环模式:
hero=['钢铁侠','绿巨人','蜘蛛侠' ]
i =0
while i>钢铁侠
>>绿巨人
>>蜘蛛侠
2.for 循环模式:
for 变量 in 遍历列表,序列有几个元素就执行几次, 每执行一次就会将序列中元素赋值给变量
hero=['钢铁侠','绿巨人','蜘蛛侠' ]
for h in hero
print(h)
>>钢铁侠
>>绿巨人
>>蜘蛛侠
range()函数
- range(开始,结束,步长)函数
开始:默认值为0,可以省略
结束:不包括结束序列号
步长: 默认为1,可以省略
range(5)=range(0,5)=range(0,5,1)
print(range(5))
>>range(0, 5)
print(list(range(5)))
>>[0,1,2,3,4]
#循环通过range 索引值取列表各S值
lst=[1,2,3,4,5,6,7,8,9]
print(list(range(0,9,2))) #取序列号
>>[0, 2, 4, 6, 8]
for i in range(0,9,2):
print(lst[i])
>>1
>>3
>>5
>>7
>>9
#直接取list值
for i in lst[::2]:
print(i)
>>1
>>3
>>5
>>7
>>9