列表的操作

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入门之容器类型数据的一系列操作之列表、字典、集合相关推荐

  1. python之容器类型数据的一系列操作之字符串

    字符串相关操作: (1)字符串的拼接 (2)字符串的重复 (3)字符串跨行拼接 (4)字符串的索引 (5)字符串的切片: 语法 => 字符串[::] 完整格式:[开始索引:结束索引:间隔值] ( ...

  2. python高级数据筛选_python高级编程,列表字典集合相关的数据筛选

    每天坚持学习一点,进行数据复盘,学习就是不一样 python高级编程,列表字典集合相关的数据筛选 #先看看第一个列表筛选 2017 9 16 高效python编程的一个案例:from random i ...

  3. 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 相关 ...

  4. python导入excel数据-Python导入数值型Excel数据并生成矩阵操作

    riginal_Data 因为程序是为了实现对纯数值型Excel文档进行导入并生成矩阵,因此有必要对第五列文本值进行删除处理. Import_Data import numpy as np impor ...

  5. Java中double类型精度丢失的问题_double类型数据加减操作精度丢失解决方法_BigDecimal取整

    BigDecimal在用double做入参的时候,二进制无法精确地表示十进制小数,编译器读到字符串"0.0000002"和"1.0000002"之后,必须把它转 ...

  6. python基础一 -------如何在列表字典集合中根据条件筛选数据

    如何在列表字典集合中根据条件筛选数据 一:列表 先随机生成一个列表,过滤掉负数 1,普通for循环迭代判断 2,filter()函数判断,filter(函数,list|tuple|string) 1 ...

  7. SIGIA_4P python学习 列表 字典 集合 面对对象编程 闭包 装饰器 函数式编程 作用域 异常处理

    SIGIA_4P python学习 列表 字典 集合 面对对象编程 闭包 装饰器 函数式编程 作用域 异常处理 本文连接 简介 SIGIA_4P 网址 a. 课程OKR Objectives and ...

  8. 简明python教程 --C++程序员的视角(四):容器类型(字符串、元组、列表、字典)和参考

    数据结构简介 Python定义的类型(或对象)层次结构在概念上可以划分为四种类别:简单类型.容器类型.代码类型 和内部类型. 可以将 PyObject 类之下的所有 Python 类划分为 Pytho ...

  9. python基础(part5)--容器类型之字符串

    鄙人学习笔记 开发工具:Spyder 文章目录 容器类型 字符串str 定义 编码 相关函数 字符串的格式化 举个例子1 举个例子2 举个例子3 容器类型 字符串str 定义 由一系列字符组成的不可变 ...

最新文章

  1. 北大美女学霸力压大神何恺明新作MAE!怒摘12个SOTA,灵感竟来自16年前CVPR论文...
  2. h30-t10 android phone,荣耀(荣耀)3C H30-T10/2GB RAM/移动3G手机系统介绍评测-ZOL中关村在线...
  3. HTML5最新漏洞:用户硬盘或被垃圾数据塞满
  4. Android10.0 Binder通信原理(二)-Binder入门篇
  5. 逐行计算、逐行递延、逐行更新
  6. python现在好找工作吗-推崇Python这么多人,为什么他们找不到工作!
  7. 2.14要来了,老司机教单身狗如何用VR过情人节
  8. python字符串功能_python字符串内置功能
  9. 5-8 离散点检测(改进版无error)
  10. Compound Words UVA - 10391(c++用法中substr函数用法+map实现)
  11. python 下的数据结构与算法---6:6大排序算法
  12. 电路板上的插头怎么拔下来_空调维修排查电路板内外原因
  13. Balsamiq Mockups 实例3
  14. 用户变量和系统变量的区别_环境变量的用户变量与系统变量的区别
  15. send/receive h264/aac file/data by rtp/rtsp over udp/tcp
  16. python学习笔记:操作Excle
  17. android视频播放的代码
  18. 仅三行代码的按键扫描程序,绝对够经典(秒杀郭天祥讲解的按键扫描)
  19. 有 3 只老鼠,8 瓶水,其中一瓶有毒,喝到有毒的水之后,老鼠一周后会准时死亡。...
  20. 腾讯辟谣心悦3玩家“特权”;共享充电宝陷入生死危机

热门文章

  1. 文华软件怎样测试交易系统的收益,如何才能找到好的交易系统?以下几个指标或对你的交易有所帮助...
  2. STM32F407与大彩串口屏的调试经验总结
  3. 《服务器上搭建Discuz论坛》
  4. STMARL:用于合作交通灯控制的时空多智能体强化学习方法
  5. php 判断手机登录是手机还是PC
  6. 任正非签发文章,时隔五年再被翻出
  7. 人大金仓应邀参加第三届全国水力学与水利信息大会
  8. s32k design statio封装函数加密
  9. 第八章 硬盘和显卡的访问与控制(2)
  10. 细看MKV争当视频格式新宠儿