python入门之容器类型数据的一系列操作之列表、字典、集合
列表的操作
1.列表的拼接 (同元组)
2.列表的重复 (同元组)
3.列表的切片 (同元组)
语法 => 列表[::] 完整格式:[开始索引:结束索引:间隔值]
(1)[开始索引:] 从开始索引截取到列表的最后
(2)[:结束索引] 从开头截取到结束索引之前(结束索引-1)
(3)[开始索引:结束索引] 从开始索引截取到结束索引之前(结束索引-1)
(4)[开始索引:结束索引:间隔值] 从开始索引截取到结束索引之前按照指定的间隔截取列表元素值
(5)[:]或[::] 截取所有列表
4.列表的获取 (同元组)
5.列表的修改 ( 可切片 )
6.列表的删除 ( 可切片 )
列表相关函数
增、删、改、查、计数、排序
append()、insert()、extend()、pop()、remove()、clear()、index()、count()、
sort()、reverse()
元组相关操作和方法
元组相关操作除了不能修改和删除其中的元素之外,剩下的操作都和列表相同。元组里面能用的方法只有index和count
字典的相关函数
函数名 | 含义 |
---|---|
fromkeys() | 使用一组键和默认值创建字典 |
pop() | 通过键去删除键值对 (若没有该键可设置默认值,预防报错) |
popitem() | 删除最后一个键值对 |
clear() | 清空字典 |
update() | 批量更新(有该键就更新,没该键就添加) |
get() | 通过键获取值(若没有该键可设置默认值,预防报错) |
keys() | 将字典的键组成新的可迭代对象 |
values() | 将字典中的值组成新的可迭代对象 |
items() | 将字典的键值对凑成一个个元组,组成新的可迭代对象 |
集合的交差并补
函数名 | 含义 |
---|---|
intersection() | 交集 |
difference() | 差集 |
union() | 并集 |
symmetric_difference() | 对称差集 (补集情况涵盖在其中) |
issubset() | 判断是否是子集 |
issuperset() | 判断是否是父集 |
isdisjoint() | 检测两集合是否不相交 不相交 True 相交False |
集合相关的函数
函数名 | 含义 |
---|---|
add() | 向集合中添加数据 |
update() | 迭代着增加 |
clear() | 清空集合 |
pop() | 随机删除集合中的一个数据 |
remove() | 删除集合中指定的值(不存在则报错) |
discard() | 删除集合中指定的值(不存在的不删除 推荐使用) |
冰冻集合
#frozenset 可强转容器类型数据变为冰冻集合
冰冻集合一旦创建,不能在进行任何修改,只能做交叉并补操作
1.列表的拼接 (同元组)
listvar = [1,2] listvar2 = [4,5] res = listvar + listvar2 print(res) tup1 = (1,2) tup2 = (44,11) res = tup1 + tup2 print(res)
2.列表的重复 (同元组)
listvar = [1,2,3] res = listvar * 3 print(res)
3.列表的切片 (同元组)
语法 => 列表[::] 完整格式:[开始索引:结束索引:间隔值] 3.1[开始索引:] 从开始索引截取到列表的最后 3.2[:结束索引] 从开头截取到结束索引之前(结束索引-1) 3.3[开始索引:结束索引] 从开始索引截取到结束索引之前(结束索引-1) 3.4[开始索引:结束索引:间隔值] 从开始索引截取到结束索引之前按照指定的间隔截取列表元素值 3.5[:]或[::] 截取所有列表
3.1[开始索引:] 从开始索引截取到列表的最后
listvar = ["乔峰","段誉","虚竹","王语嫣","阿朱","阿紫","慕容复","游坦之",] res = listvar[1:] print(res)
3.2[:结束索引] 从开头截取到结束索引之前(结束索引-1)
res = listvar[:-1] print(res)
3.3[开始索引:结束索引] 从开始索引截取到结束索引之前(结束索引-1)
res = listvar[4:5] print(res)
3.4[开始索引:结束索引:间隔值]
listvar = ["乔峰","段誉","虚竹","王语嫣","阿朱","阿紫","慕容复","游坦之",] res = listvar[3::2] #王语嫣、阿紫 res = listvar[:5:2] res = listvar[-6:-9:-1] res = listvar[-6:-9:-100] print(res) res = listvar[::3] print(res)
3.5[:] [::] 获取到所有的列表
res = listvar[:] print(res)
5.列表的删除 ( 可切片 )
listvar = ["乔峰","段誉","虚竹","王语嫣","阿朱","阿紫","慕容复","游坦之",] del listvar[-2] print(listvar)
列表的相关函数 增删改查(数据结构中的双向链表)
一 增
append ():向列表的末尾添加新的元素
listvar = [1,2,3] res = listvar.append(4) print(listvar)
insert ():在指定索引之前插入元素
也就是说代替这个位置喽,即你跑步追上了第二名,你是第几名呢?
listvar = [1,2,3] listvar.insert(1,"4") print(listvar)
extend ():迭代追加所有元素
listvar = [11,22,33] listvar.extend("abc") print(listvar) listvar.extend(["鲁智深","吴勇","花荣"]) print(listvar)
二 删除
pop():通过指定索引删除元素,若没有索引移除最后那个
listvar = ["贾宝玉", "薛宝钗","林黛玉","王熙凤"] res = listvar.pop() print(res) print(listvar) # 指定索引删除 res = listvar.pop(0) print(res) print(listvar)
remove 功能:通过给予的值来删除,如果多个相同元素,默认删除第一个
listvar = ["贾宝玉", "薛宝钗","林黛玉","王熙凤","刘姥姥"] res = listvar.pop() print(res) print(listvar)
clear():清空列表
listvar = ["贾宝玉", "薛宝钗","林黛玉","王熙凤","刘姥姥"] listvar.clear() print(listvar)
index():获取某个值在列表中的索引
listvar = ["贾宝玉", "薛宝钗","林黛玉","王熙凤","刘姥姥"] res = listvar.index("林黛玉") res = listvar.index("林黛玉",2) #res = lisevar.index("猪八戒",4,7) print(res) print(listvar)
count():计算某个元素出现的次数
listvar = ["路飞","坂田银时", "坂本辰马","萨达哈鲁","新八鸡","萨达哈鲁","娜美啧啧","雏田"] res = listvar.count("萨达哈鲁") print(res)
sort() :列表排序(默认小到大排序)
listvar = [1,99,-9,23,199] listvar.sort() print(listvar) #reverse=True 选择倒叙 True (从大到小) listvar.sort(reverse=True) print(listvar)
reverse ():列表反转操作
listvar = [91 , -88 ,123 ,66] listvar.reverse() print(listvar) listvar = ["oneal","kobi","james","andoni","kuli"] listvar.sort() # 如果是字母 按照ascii吗进行排序 一位一位的比较 # ['andoni', 'james', 'kobi', 'kohi', 'oneal']
字典的相关函数
一、增
dictvar = {} dictvar["a"] = 1 dictvar["b"] = 2 print(dictvar)
fromkeys() 使用一组键和默认值创建字典 ( 不常用 了解)
listvar = ["a","b"] dictvar = {} dictvar2 = dictvar.fromkeys(listvar,None) print(dictvar2)
pop() 通过键去删除键值对 (若没有该键可设置默认值,预防报错)
dictvar = {"top":"鲁班七号","middle":"甄姬","bottom":"盘古"} res = dictvar.pop("top") print(dictvar) print(res) res = dictvar.pop("top1","该top1键不存在") print(res)
popitem() 删除最后一个键值对
dictvar = {"top":"鲁班七号","middle":"甄姬","bottom":"盘古"} res = dictvar.popitem() print(res) print(dictvar)
clear() 清空字典
dictvar = {"top":"鲁班七号","middle":"甄姬","bottom":"盘古"} dictvar.clear() print(dictvar)
三、改
update() 批量更新(有该键就更新,没该键就添加)
update 如果存在此键,则更改该值,如果不存在此键,则添加该键值对
dictvar = {"top":"鲁班七号","middle":"甄姬","bottom":"盘古"} dictvar2 = {"jungle":"韩信","support":"蔡文姬"} dictvar2 = {"jungle":"韩信","support":"蔡文姬","bottom":"孙策"} dictvar.update(dictvar2) print(dictvar)
四 、查
get()通过键获取值(若没有该键可设置默认值,预防报错)
存在这个键则拿取这个值,如果不存在这个键,
则使用默认值,如果不设置默认值,默认返回None
dictvar = {"top":"鲁班七号","middle":"甄姬","bottom":"盘古"} res = dictvar.get("middle123") res = dictvar.get("middle","不存在该键") print(res)
其他操作
keys() 将字典的键组成新的可迭代对象
dictvar = {"top":"鲁班七号","middle":"甄姬","bottom":"盘古"} print(dictvar.keys()) print("<==>") for i in dictvar: print(i) for i in dictvar.keys(): print(i)
values() 将字典中的值组成新的可迭代对象
print(dictvar.values()) for i in dictvar.values(): print(i)
items() 将字典的键值对凑成一个个元组,组成新的可迭代对象
print(dictvar.items()) for k,v in dictvar.items(): print(k,"=>",v)
集合的交叉并补
set1 = {"周杰伦","李宇春","王宝强","斯嘉丽"} set2 = {"周润发","刘德华","乌蝇哥","斯嘉丽","李宇春"} # ### 集合的交叉并补 set1 = {"周杰伦","李宇春","王宝强","斯嘉丽"} set2 = {"周润发","刘德华","王文","斯嘉丽","李宇春"} #intersection() 交集 # print(set1 & set2) # print(set1.intersection(set2)) #difference() 差集 # print(set1 - set2) # print(set1.difference(set2)) #union() 并集 # print(set1 | set2) # print(set1.union(set2)) #symmetric_difference() 对称差集 (补集情况涵盖在其中) # print(set1 ^ set2) # print(set1.symmetric_difference(set2)) #issubset() 判断是否是子集 set1 = {"李逵","张飞","关羽","贾宝玉"} set2 = {"张飞","关羽"} # print(set2 < set1 ) # print(set2.issubset(set1)) #issuperset() 判断是否是父集 # print(set1 > set2) # print(set1.issuperset(set2)) #isdisjoint() 检测两集合是否不相交 不相交 True 相交False print(set1.isdisjoint(set2)) # ### 集合的相关函数 setvar = {"李逵","张飞","关羽","贾宝玉"} # 一 增 #add() 向集合中添加数据 setvar.add("李四") print(setvar) #update() 迭代着增加 setvar = {"李逵","张飞","关羽","贾宝玉"} setvar.update("abc") print(setvar) # 二 删 #clear() 清空集合 setvar.clear() print(setvar) #pop() 随机删除集合中的一个数据 setvar = {"李逵","张飞","关羽","贾宝玉"} res = setvar.pop() print(res) print(setvar) #remove() 删除集合中指定的值(不存在则报错) setvar = {"李逵","张飞","关羽","贾宝玉"} # setvar.remove("关羽") # setvar.remove("关羽123") # 不存在的error情况 print(setvar) #discard() 删除集合中指定的值(不存在的不删除 推荐使用) setvar.discard("关羽") setvar.discard("关羽456") print(setvar) # 集合不能够修改和查询 # 冰冻集合: """ #frozenset 可强转容器类型数据变为冰冻集合 冰冻集合一旦创建,不能在进行任何修改,只能做交叉并补操作 """ # 定义一个空的冰冻集合 fz = frozenset() print(fz,type(fz)) fz1 = frozenset(["你好","世界","地球"]) fz2 = frozenset({"世界","球"}) print(fz1,type(fz1)) print(fz2,type(fz2)) # 冰冻集合仅仅只能做交叉并补,不能做添加或删除的相关操作 print(fz1 & fz2) # fz1.add("足球") error
深浅拷贝
### 深拷贝 与 浅拷贝 """ a = 10 b = a a = 7 print(b) # 不同的两个变量指向了同一个列表 listvar = [1 , 2 ,3 , 4 ] listvar2 = listvar listvar.append(5) print(listvar2) """ # 浅拷贝 # 方法一 listvar = [1 , 2 ,3 , 4 ] listvar2 = listvar.copy() listvar.append(5) print(listvar2) # copy模块 copy方法 # 方法二 import copy listvar = [1 , 2 ,3 , 4 ] listvar2 = copy.copy(listvar) listvar.append(6) print(listvar2) # 深拷贝 copy 模块下的 deepcopy方法 listvar = [1,2,3,4,[5,6,7]] listvar2 = copy.deepcopy(listvar) listvar[-1].append(19) print(listvar2) # 二级容器 container = {"a":[1,2,3,4],"b":{"c":1,"d":2}} container2 = copy.deepcopy(container) container["b"]["ee"] = "大风车" print(container) print(container2) # listvar = [1,2,3] # listvar2 = [1,2,3] # listvar2 = listvar
- python实操(5):python数据类型及常用操作,数字、字符串、元组、列表、字典、集合
- Python 3从入门到精通14-常见的数据类型字符串元组,列表,字典
- 兄弟连学python(4)——列表、元祖、字典、集合数据类型介绍
- Python,Day2 - 数据类型,运算,列表操作,字典
- 【python】特色数据类型——元组(列表、元组、字典、集合)(6)
- python基本数据类型列表、元组、字典、集合
- Python 入门学习 -----变量及基础类型(元组,列表,字典,集合)
- python中的列表,元祖,字典,等基本数据类型的操作
- 【python】特色数据类型——字典(列表、元组、字典、集合)(7)
- Python 入门学习 -----变量及基础类型(元组,列表,字典,集合)
- Python3组合数据类型(元组、列表、集合、字典)语法
- python入门:基础,列表、元组、字典及集合类型
- python学习-1-列表,元组,字典,集合,文件操作
- Python之几种重要的基本类型:元组,列表,字典,字符串,集合
- python常用数据类型操作-列表
- python3的列表、元组、集合、字典操作
- 第二百九十九节,python操作redis缓存-SortSet有序集合类型,可以理解为有序列表
- 7-Python3从入门到实战—基础之数据类型(字典-Dictionary)
- Python:数据类型list中 利用循环的基本操作--补充 (2)双层嵌套列表
- Python 学习 (一) python的基本数据类型 元组 列表 字典