一种可以容纳多份数据的数据类型
根据特点的不同,如:
是否支持重复元素
是否可以被修改
是否有序等
分为5类:列表List 元组tuple 字符串str 集合set 字典dict
列表list
列表的定义
字面量
1,2,3,4,5
定义变量
变量名称=[1,2,3,4]
定义空列表
变量名称=[]
变量名称=list()
列表也是有下标索引的,不同的是,py中的索引可以反向,如最后一个元素下标为-1
存在索引越界问题
常用操作
增删改查
查找某元素的下标,查不到返回ValueError
列表.index(元素)
list = [1, 2, 3, 4]
index = list.index(1)
print(index)
不存在
ValueError: 5 is not in list
修改下标索引的值
列表[索引]=值
插入元素
列表.insert(下标,元素)
list = [1, 2, 3, 4]
print(list)
list.insert(1,9)
print(list)
追加元素(尾插)
列表.append(元素)
list = [1, 2, 3, 4]
print(list)
list.append("111")
print(list)
如果要追加一批元素,调用extend方法
列表.extend(其他数据容器)
list = [1, 2, 3, 4]
li2=[5,6]
print(list)
list.extend(li2)
print(list)
删除元素
语法1: del 列表[索引]
语法2: 列表.pop(索引),pop是有返回值的
list = [1, 2, 3, 4]
print(list)
del list[0]
print(list)
list.pop(0)
print(list)
删除某元素在列表的第一个匹配项
通过内容删除
语法:列表.remove(元素)
list.remove(1)
print(list)
list.remove(5)
查不到就报错
list.remove(5)
ValueError: list.remove(x): x not in list
清空列表
列表.clear()
统计某元素在列表内的数量
列表.count(元素)
列表的长度
len(列表)
遍历列表
list = [1, 2, 3, 4, 5]
# while循环变量
i = 0
while i < len(list):
print(list[i])
i += 1
# for循环遍历
for i in list:
print(list[i])
元组tuple
元组相当于只读的list,不可被修改
元组定义
定义元组使用小括号,且使用逗号隔开各个数据,数据可以是不同的数据
定义元组字面量
(1,2,3,4,5)
定义元组变量
变量名称=(1,2,3,4)
定义空元组
变量名称=()
变量名称=tuple()
元组也支持嵌套
方法方面除了修改元组的方法不可以,其他与list一样
字符串str
一样可以通过下标取值
字符串是一个无法修改的数据容器,如果必须要做,只能得到一个新的字符串
字符串替换
字符串.replace(str1,str2)
将字符串内的全部字符串1替换为字符串2
str1="aaaaaaaaaaa"
str2="bbbbbbbbbbb"
str3 = str1.replace(str1, str2)
print(str3)
字符串的分割
字符串.split(分隔符字符串)
按照指定的分隔符字符串,将字符串划分为多个字符串,并存入列表中
str = "aaa bbb ccc ddd"
split_list = str.split(" ")
print(split_list)
# ['aaa', 'bbb', 'ccc', 'ddd']
字符串的规整操作(吃空格)
字符串.strip()
字符串.strip(字符串)
str="12weqweqwe21"
strip= str.strip()
print(strip)
# weqweqwe
str_strip = str.strip("12")
print(str_strip)
# weqweqwe
序列
内容连续,有序,可使用下标索引的一类数据容器
列表元组字符串都是序列
切片
从一个序列中取出一个子序列
语法:序列[起始下标:结束下标:步长]
步长可以为负数,倒着取
切片得到一个新的序列
# 对list切片
list = [1, 2, 3, 4, 5, 6]
list_ = list[1:4]
print(list_)
print("==============")
tuple = (1, 2, 3, 4, 5, 6, 7)
tuple_ = tuple[:]
print(tuple_)
print("===================")
集合set
可以去重,不保证顺序,不支持下标索引访问,允许修改
集合用{}
定义方式类似
添加新元素
add
移除元素
remove
随机取出元素
pop
清空集合
clear
取两个集合的差集
集合1.difference(集合2) 集合1有集合2没有的
消除2个集合的差集
集合1.difference_uppdate(集合2)
删除集合1中集合2有的元素
集合2 不变
两个集合合并
集合1.union(集合2)
得到新的集合
集合不支持下标索引,遍历只能用for循环
字典dict
生活中的字典是一个字对应一个含义
python中的字典是一个key找到所属的value
字典的定义
dict={key:value,key:value....}
d = {1: 10, 2: 20, 3: 30}
d2={}
d3=dict()
字典同样不允许重复
字典中Key value可以是任意数据,Key不可以为字典
新增元素 更新元素
字典[key]=value
my_dict = {"sb": 99, "rz": 88, "nt": 77}
# 更新元素
my_dict["sb"] = 66
print(my_dict)
# 修改元素
my_dict["aa"]=100
print(my_dict)
删除元素
pop(Key)
返回对应的value
清空元素
clear
获取全部的Key
字典.keys()
keys = my_dict.keys()
print(keys)
遍历通过这个方法可以拿到key
for key in keys:
print(f"{key}的分数是{my_dict[key]}")
但是如果直接对字典进行for循环,结果是一样的,也是取出key
容器之间也是可以相互转换的,跟强制类型转换一样,但是转换不了字典,因为不是键值对
通用排序功能
sorted(列表,正反序)
排序的结果统统变为列表对象
sorted(my_dict, reverse=True)
反转操作