一、数据结构
python中提供了4个内置数据结构:列表、元组、字典、集合
1.其中有2个有序的集合数据结构为:列表和元组
列表:有序且可变的对象集合,每一个元素从0开始编号,可以通过增加、修改、删除对象对列表进行修改
元组:有序不可变的对象集合,每一个元素从0开始编号,是一个常量列表,一旦向一个元组赋对象,就不能改变
2.无序的数据结构:字典
字典:无序的键值对集合,字典是无序可变的
3.避免重复的数据结构:集合
集合:无序可变的唯一对象集合,其中的对象不会重复,且可以完成交集、并集和差集的操作,也可以根据需要扩展和收缩
二、列表的增删改查
1.创建:
1)列表里的对象是异构的,可以是整数、字符串、浮点数(带引号的都是字符串)
stus = ['王月',12,'宋雪艳',12.1,'王何','12']
2)字符串转为list 强转
s = '王月、张娜、宋雪艳、刘姐、王何、程月香' print(list(s)) 运行结果: ['王', '月', '、', '张', '娜', '、', '宋', '雪', '艳', '、', '刘', '姐', '、', '王', '何', '、', '程', '月', '香']
2.扩展(新增)
1)append(元素):入参为元素,默认再列表尾部新增一个元素,入参为空表示什么也不做
stus = ['王月','张娜','宋雪艳','刘姐','王何','程月香'] stus.append('唐玉亮') print(stus) 运行结果: ['王小月', '徐静', '张娜', '宋雪艳', '刘姐', '王何', '程月香', '唐玉亮']
2)extend(x):X为一个列表,默认再列表尾部新增一个列表,入参为空[]表示什么也不做,跟append类似
stus = ['王月','张娜','宋雪艳'] stus.extend(['MLing',1,12.11]) print(stus) 运行结果: ['王小月', '张娜', '宋雪艳', 'MLing', 1, 12.11]
3)inserd(x,y):x为下标,y为元素表示再x处增加元素y
stus = ['王月','张娜','宋雪艳','刘姐','王何','程月香'] #下标、角标、索引 stus.insert(1,'徐静') print(stus) 运行结果: ['王小月', '徐静', '张娜', '宋雪艳', '刘姐', '王何', '程月香']
3.收缩(删除)
1)remove(X):X为元素,删除列表中的元素x,注意x不存在时会报错
stus = ['王月','张娜','宋雪艳'] stus.remove('王月') print(stus) 运行结果: ['张娜', '宋雪艳']
2)pop(x):x为下标,不传入参的时候,默认弹出列表的最后一项
stus = ['王月','张娜','宋雪艳'] stus.pop(1) print(stus) 运行结果: ['王月', '宋雪艳']
3)dle name[x]:列表是列表名,x是下标
stus = ['王月','张娜','宋雪艳'] del stus[0] print(stus) 运行结果: ['张娜', '宋雪艳']
4)name.clear():name是列表名,表示清空列表
stus = ['王月','张娜','宋雪艳'] stus.clear()#清空列表 print(stus) 运行结果: []
4.修改
stus = ['王月','张娜','宋雪艳','刘姐','王何','程月香'] #下标、角标、索引 stus[0] = '王小月' print(stus) 运行结果: ['王小月', '张娜', '宋雪艳', '刘姐', '王何', '程月香']
5.查询
stus = ['王月','张娜','宋雪艳','刘姐','王何','程月香'] #下标、角标、索引 stus[0] = '王小月' print(stus[0]) 运行结果 王小月
三、列表的常用方法
1.copy
# print(l2.count(1)) # print(l2.index(77))#找下标 # l2.sort(reverse=True) # # print(l2) # l3 = l2.copy()#复制一个list # l2.extend(stus) # print(l2) # stus.sort() # stus.copy() # stus.extend() #合并两个list # stus.reverse()