列表
文章目录
序列
序列是Python中最基本的一种数据结构,用来保存一组有序的数据,序列里所有的数据都有唯一的索引值,还可以按照顺序分配索引
可变序列:列表
不可变序列:字符串,元组
列表快速入门
列表是Python中的一个对象,能够保存任何类型的有序数据
列表的创建
lst = [] #创建空列表
lst = list(字符串)
切片
语法:
list_name[起始位置:终止位置:步长]
切片:
#hero = ['钢铁侠','蜘蛛侠','蝙蝠侠','绿巨人','奇异博士','雷神']
# 步长默认为1
# print(hero[1:3])
# 省略终止位置
# print(hero[2:])
# 省略起始位置
# print(hero[:3])
#起始位置和终止位置都省略
# print(hero[:])
# 步长设置为2
# print(hero[1:4:2])
# print(hero[::2])
#逆序输出(步长为负数)
# print(hero[::-1])
通用操作
# hero = ['钢铁侠','蜘蛛侠','蝙蝠侠','绿巨人','奇异博士','雷神']
# 计算列表长度(列表内元素个数)
# print(len(hero))
# +运算
# print(hero+['死侍','美国队长'])
# print(hero)
# *运算(重复)
# print(hero*3)
# print(hero)
# 求最大最小值
# print(max(hero))
# print(min(hero))
# 判断元素是否在列表内(返回值为True或False)
# print('黑豹' in hero)
# print('蜘蛛侠' in hero)
# print('黑豹' not in hero)
# index()返回某元素在列表中的位置,可以限定范围内查找
# print(hero.index('绿巨人'))
# print(hero.index('奇异博士',2,5))
# count()返回某元素在列表中的个数,没有时返回0
# a = hero * 3
# print(a.count('蜘蛛侠'))
# print(hero.count('战神'))
# 以上这些通用操作亦可以在字符串中操作
# str = 'Sleet'
# print(str.count('e'))
修改列表
通过索引修改
# hero = ['钢铁侠','蜘蛛侠','蝙蝠侠','绿巨人','奇异博士','雷神']
# print('修改前:',hero)
# hero[2] = '黑豹'
# print('修改后',hero)
通过del进行修改
# hero = ['钢铁侠','蜘蛛侠','蝙蝠侠','绿巨人','奇异博士','雷神']
# del(hero[2])
# print('修改后:',hero)
通过切片修改
# hero[1:3] = '黑寡妇'
# hero[1:3] = ['黑寡妇']
# print('修改后:',hero)
# hero[::2] = '黑寡妇'
# hero[::2] = ['黑寡妇']
# print('修改前:',hero)
注意
- 当进行切片操作时,切片后的元素个数小于要替换的元素个数时,会依次顺延一个位置
- 当设置了步长时,序列中的元素个数必须和切片中的元素个数一致
列表的方法
append(x)
在列表的最后添加一个元素x
# hero = ['黑寡妇','奇异博士','蜘蛛侠','蝙蝠侠','钢铁侠']
# hero.append('美国队长')
# print(hero)
insert(索引,x)
在索引位置上插入一个元素x
hero = ['黑寡妇','奇异博士','蜘蛛侠','蝙蝠侠','钢铁侠']
# hero.insert(2,'美国队长')
# print(hero)
extend(序列)
使用序列来扩展当前序列,extend()传递的参数是序列
hero = ['黑寡妇','奇异博士','蜘蛛侠','蝙蝠侠','钢铁侠']
# hero.extend(['美国队长','黑豹'])
# hero.extend('美国队长')
# hero.extend(['美国队长'])
# hero.extend(123) # TypeError: 'int' object is not iterable
# print(hero)
remove(x)
直接删除列表中的元素,没有返回值
hero = ['黑寡妇','奇异博士','蜘蛛侠','蝙蝠侠','钢铁侠']
# r = hero.remove('蜘蛛侠')
# print(hero)
# print(r)
pop(索引)
通过索引值删除对应的元素,可以返回该元素值
hero = ['黑寡妇','奇异博士','蜘蛛侠','蝙蝠侠','钢铁侠']
# r = hero.pop(2)
# print(hero)
# print(r)
clear()
清空列表
hero = ['黑寡妇','奇异博士','蜘蛛侠','蝙蝠侠','钢铁侠']
# hero.clear()
# print(hero)
reverse(list)
使列表倒序输出
hero = ['黑寡妇','奇异博士','蜘蛛侠','蝙蝠侠','钢铁侠']
# hero.reverse()
# print(hero)
sort(reverse=False)
对列表里的元素进行排序,默认reverse=False(升序),如果要降序,则reverse=True
hero = ['黑寡妇','奇异博士','蜘蛛侠','蝙蝠侠','钢铁侠']
# lst = list('asdfagwqecsadfe')
# lst.sort() # 升序
# lst.sort(reverse=True) # 倒序
# print(lst)
列表的遍历
for 循环
语法:for 变量 in 序列(遍历的规则)
# lst = list('asdfagwecsa')
# for i in lst:
# print(i,end='')
range()
语法:range(start,end,step)
- start:开始位置,没有时默认为0
- end:结束位置,但不包括结束位置的值,比如range(5) = [0,1,2,3,4]
- step:步长,没有时默认为1
range(5) <=> range(0,5) <=> range(0,1,5)
# print(range(5))
# r = range(5)
# print(list(r))
for 循环与 range() 的搭配
# lst = list('asdfagwecsa')
# for i in range(5):
# print(lst[i],end='')
# for i in range(len(lst)-1):
# print(lst[i],end='')
以上为个人总结+资料查询,欢迎批评指正~