列表
写法:[元素1,元素2,元素3,…]
支持的方法&操作
列表取值
列表是有序的,可通过索引来取值
list = ['小明','小黄','小红']
print(list[1])
注意:列表索引是从0开始的,所以上述取得索引‘1‘是第二个元素‘ 小黄‘
切片
list = ['小明','小黄','小红','胖虎','小兰']
#切片方法:list[a:b]
#a和b都填写,代表从a开始,b前面一个元素结束
print(list[1:4]) #输出结果:['小黄', '小红', '胖虎']
#前面a不填写,表示从索引0开始
print(list[:4]) #输出结果:['小明', '小黄', '小红', '胖虎']
#后面b不填写,表示到最后一个结束
print(list[1:]) #输出结果:['小黄', '小红', '胖虎', '小兰']
#步长表示法:list[a:b:c] c代表步长,默认为1
print(list[1:4:2]) #输出结果:['小黄', '胖虎']
print(list[::-1]) #倒序输出:['小兰', '胖虎', '小红', '小黄', '小明']
#负数表示倒数第多少位的元素
print(list[:-1]) ##打印最后一个元素之前的内容 输出结果:['小明', '小黄', '小红', '胖虎']
# print(list[1:]) ##打印第一个元素之后的内容
# print(list[:-1]) ##打印最后一个元素之前的内容
# print(list[::-1]) ##倒序输出
添加元素
list = ['小明','小黄','小红','胖虎','小兰']
#append 追加到列表的末尾
list.append('静香')
print(list) #输出结果:['小明', '小黄', '小红', '胖虎', '小兰', '静香']
#insert插入元素到指定位置,传入参数(索引,元素值)
list.insert(2,'小新')
print(list) #输出结果:['小明', '小黄', '小新', '小红', '胖虎', '小兰']
修改元素
list = ['小明','小黄','小红','胖虎','小兰']
#更改列表中元素的值,直接给元素赋值即可
list[1] = '小鹏'
print(list) #输出结果:['小明', '小鹏', '小红', '胖虎', '小兰']
删除元素
list = ['小明','小黄','小红','胖虎','小兰']
#del根据元素索引来删除
del list[1]
print(list) #输出结果:['小明', '小红', '胖虎', '小兰']
#remove传入元素的值来删除
list.remove('小黄') #也可以是list.remove(list[1])
print(list) #输出结果:['小明', '小红', '胖虎', '小兰'],相比del可以不知道索引的情况下进行删除
#pop默认删除最后一个元素,输入索引后,删除指定元素
list.pop()
print(list) #输出结果:['小明', '小黄', '小红', '胖虎']
list.pop(1)
print(list) #输出结果:['小明', '小红', '胖虎', '小兰']
查找元素索引
list = ['小明','小黄','小红','胖虎','小兰']
#index 查找元素的索引
print(list.index('小红')) #输出结果:2
统计同名元素个数
list = ['小明','小黄','小红','胖虎','小兰','胖虎','胖虎']
#count 统计元素个数
print(list.count('胖虎')) #输出结果:3
清空列表
list = ['小明','小黄','小红','胖虎','小兰']
#clear 清空列表
list.clear()
print(list) #输出结果:[]
反转列表
list = ['小明','小黄','小红','胖虎','小兰']
#reverse 反转列表
list.reverse()
print(list) #输出结果:['小兰', '胖虎', '小红', '小黄', '小明']
列表排序
list = ['小明','小黄','小红','胖虎','小兰','Xiaowang','1152','anli']
#sort 按ASCII对列表进行排序
list.sort()
print(list) #输出结果:['1152', 'Xiaowang', 'anli', '小兰', '小明', '小红', '小黄', '胖虎']
合并列表
list1 = ['小明','小黄','小红','胖虎','小兰']
list2 = ['小芳','大雄']
#extend合并列表2到列表1中
list1.extend(list2)
print(list1) #输出结果:['小明', '小黄', '小红', '胖虎', '小兰', '小芳', '大雄']
复制列表
import copy
list1 = ['小明','小黄','小红','胖虎',['新一','小兰']]
#copy 拷贝列表,浅拷贝,只拷贝第一层(高版本的python好像变成深拷贝了)
list2 = list1.copy()
print(list2) #输出结果:['小明', '小黄', '小红', '胖虎', ['新一', '小兰']]
list1[1] = '小新'
list1[-1] = ['新一','灰原哀']
print(list1) #输出结果:['小明', '小新', '小红', '胖虎', ['新一', '灰原哀']]
print(list2) #输出结果:['小明', '小黄', '小红', '胖虎', ['新一', '小兰']]
#copy.deepcopy 深拷贝
list2 = copy.deepcopy(list1)
#通过列表切片来复制
list2 = list1[:]
print(list2) #输出结果:['小明', '小黄', '小红', '胖虎', ['新一', '小兰']]
元组
写法:names = (元素1,元素2,元素3…)
它只有两个方法,一个是count,一个是index。
元组一旦被创建,则不可以再修改,所以又叫只读列表。
字典
写法:
info = {key_1 :value_1 ,key_2 :value_2,…}
字典的特性:
**·**字典是无序的
**·**key必须是唯一的,so天生去重
查字典中的值
根据key来获取到对应的value
info = {“学生1” :“小明” ,
“学生2” :“小红”,
“学生3” :“小白”,
}
print(info[“学生2”]) #输出结果:“小红”
使用get方法获取key对应的值,如果key存在,则取出对应的值,如果不存在则返回None
print(info.get(“学生2”))
print(info.get(“学生4”))
修改/新增字典中的值
如果key存在则修改,如果key不存在则新增
info[“学生3”] = “小王”
info[“学生4”] = “小黑”
print(info)
删除字典中的元素
del删除
del info[“学生1”]
pop删除
info.pop(“学生1”)
.keys获取字典中所有的key
print(info.keys())
.values获取字典中所有的value
print(info.values())
update合并两个字典
a.update(b) 把字典b合并到字典a,如果存在相同的key,则更新成b的值,如果不存在则新增。
items把字典转成列表,key和value组成一个元组
集合
集合是一个无序的,不重复的数据组合,它的主要作用如下:
**·**去重,把一个列表变成集合就自动去重了
**·**关系测试,测试两组数据之间的交集、差集、并集等关系
常用操作
s = set([3,5,6,9]) #创建一个数值集合
t = set(“hello”) #创建一个唯一字符的集合
求交集
list_1.intersection(list_2)
#求交集
list_1 = set([1,3,5,6,9])
list_2 = set([2,5,6,8,10])
print(list_1.intersection(list_2)) #输出结果:{5, 6}
求并集
list_1.uiion(list_2)
#求并集
list_1 = set([1,3,5,6,9])
list_2 = set([2,5,6,8,10])
print(list_1.union(list_2)) #输出结果:{1, 2, 3, 5, 6, 8, 9,
求差集
list_1.difference(list_2)
#求差集
list_1 = set([1,3,5,6,9])
list_2 = set([2,5,6,8,10])
print(list_1.difference(list_2)) #输出结果:{1, 3, 9}
判断是否是子集
list_1.issubset(list_2)
判断是否是父集
list_1.issuperset(list_2)
求对称差集
list_1.symmetric_difference(list_2)
#求对称差集
list_1 = set([1,3,5,6,9])
list_2 = set([2,5,6,8,10])
print(list_1.symmetric_difference(list_2)) #输出结果:{1, 2, 3, 8, 9, 10}