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入门之容器类型数据的一系列操作之列表、字典、集合相关推荐
- python之容器类型数据的一系列操作之字符串
字符串相关操作: (1)字符串的拼接 (2)字符串的重复 (3)字符串跨行拼接 (4)字符串的索引 (5)字符串的切片: 语法 => 字符串[::] 完整格式:[开始索引:结束索引:间隔值] ( ...
- python高级数据筛选_python高级编程,列表字典集合相关的数据筛选
每天坚持学习一点,进行数据复盘,学习就是不一样 python高级编程,列表字典集合相关的数据筛选 #先看看第一个列表筛选 2017 9 16 高效python编程的一个案例:from random i ...
- python入门到精通 _5数据容器(list、tuple、str、set、dict)
文章目录 1.list列表 1.1 列表的定义 1.2 列表的下标索引 1.3 常用操作方法总结 案例 1.4 列表的遍历for/while 案例 2. tuple元组 2.1 定义元组 2.2 相关 ...
- python导入excel数据-Python导入数值型Excel数据并生成矩阵操作
riginal_Data 因为程序是为了实现对纯数值型Excel文档进行导入并生成矩阵,因此有必要对第五列文本值进行删除处理. Import_Data import numpy as np impor ...
- Java中double类型精度丢失的问题_double类型数据加减操作精度丢失解决方法_BigDecimal取整
BigDecimal在用double做入参的时候,二进制无法精确地表示十进制小数,编译器读到字符串"0.0000002"和"1.0000002"之后,必须把它转 ...
- python基础一 -------如何在列表字典集合中根据条件筛选数据
如何在列表字典集合中根据条件筛选数据 一:列表 先随机生成一个列表,过滤掉负数 1,普通for循环迭代判断 2,filter()函数判断,filter(函数,list|tuple|string) 1 ...
- SIGIA_4P python学习 列表 字典 集合 面对对象编程 闭包 装饰器 函数式编程 作用域 异常处理
SIGIA_4P python学习 列表 字典 集合 面对对象编程 闭包 装饰器 函数式编程 作用域 异常处理 本文连接 简介 SIGIA_4P 网址 a. 课程OKR Objectives and ...
- 简明python教程 --C++程序员的视角(四):容器类型(字符串、元组、列表、字典)和参考
数据结构简介 Python定义的类型(或对象)层次结构在概念上可以划分为四种类别:简单类型.容器类型.代码类型 和内部类型. 可以将 PyObject 类之下的所有 Python 类划分为 Pytho ...
- python基础(part5)--容器类型之字符串
鄙人学习笔记 开发工具:Spyder 文章目录 容器类型 字符串str 定义 编码 相关函数 字符串的格式化 举个例子1 举个例子2 举个例子3 容器类型 字符串str 定义 由一系列字符组成的不可变 ...
最新文章
- 北大美女学霸力压大神何恺明新作MAE!怒摘12个SOTA,灵感竟来自16年前CVPR论文...
- h30-t10 android phone,荣耀(荣耀)3C H30-T10/2GB RAM/移动3G手机系统介绍评测-ZOL中关村在线...
- HTML5最新漏洞:用户硬盘或被垃圾数据塞满
- Android10.0 Binder通信原理(二)-Binder入门篇
- 逐行计算、逐行递延、逐行更新
- python现在好找工作吗-推崇Python这么多人,为什么他们找不到工作!
- 2.14要来了,老司机教单身狗如何用VR过情人节
- python字符串功能_python字符串内置功能
- 5-8 离散点检测(改进版无error)
- Compound Words UVA - 10391(c++用法中substr函数用法+map实现)
- python 下的数据结构与算法---6:6大排序算法
- 电路板上的插头怎么拔下来_空调维修排查电路板内外原因
- Balsamiq Mockups 实例3
- 用户变量和系统变量的区别_环境变量的用户变量与系统变量的区别
- send/receive h264/aac file/data by rtp/rtsp over udp/tcp
- python学习笔记:操作Excle
- android视频播放的代码
- 仅三行代码的按键扫描程序,绝对够经典(秒杀郭天祥讲解的按键扫描)
- 有 3 只老鼠,8 瓶水,其中一瓶有毒,喝到有毒的水之后,老鼠一周后会准时死亡。...
- 腾讯辟谣心悦3玩家“特权”;共享充电宝陷入生死危机