一:集合相关操作与相关函数

1.集合相关操作(交叉并补)

(1)intersection() 交集

set1 = {"one","two","three"}
set2 = {"four","five","one"}
res = set1.intersection(set2)
print(res)
res = set1 & set2
print(res)

(2)difference() 差集

set1= {"one","two","three","four","five"}
set2 = {"six","seven","eigth","four"}
res = set1.difference(set2)
print(res)
res = set1 - set2   #s1 - s2 中有的元素,剩下的元素为结果
print(res)

(3)unoion() 并集

set1= {"one","two","three","four","five"}
set2 = {"six","seven","eigth","four"}
res = set1.union(set2)
print(res)
res = set1 | set2
print(res)

(4)symmrtric_difference() 对此差集(补集情况涵盖在其中)

set1= {"one","two","three","four","five"}
set2 = {"six","seven","eigth","four"}

res = set1.symmetric_difference(set2)
print(res)
res = set1 ^ set2
print(res)

(5)issubset()判断是否子集

set1 = {"one","two","three"}
set2 = {"one"}
res = set2.issubset(set1)  #可以完全一样
print(res)
#真子集: 2个集合不是完全一样的
res = set2 <= set1

print(res)

# res = set1.issuperset(set2)
# #也就是issubset()issuperset()在两个集合元素相同的情况下都是Ture
# print(res)

(6)issuperset() 判断是否是父集

set1 = {"one","two","three"}
set2 = {"one"}
res = set1.issuperset(set2)
print(res)
res = set1 >= set2 #>= 是要用等于的
print(res)

(7)isdisjoint()

检测两集合是否相交 不相交Ture 相交False

set1 = {"one","two","three"}
set2 = {"one"}
res = set1.isdisjoint(set2)
print(res)

2.集合相关函数

(1)增 add() update()

#add() 相集合中添加数据
print("==========增============")
setvar = {"one","two","three"}
setvar.add("four")
print(setvar)

print("==========update============")
#update() 迭代着增加 update (可迭代性数据)
setvar.update(["one","two"])
print(setvar)
print("==========删============")

(2)删除 clear() pop() discard()

#clear() 清空集合
setvar = {"one","two","three"}
setvar.pop()
print(setvar)

#pop() 随机删除集合的一个数据
setvar = {"one","two","three"}
setvar.remove("three")

#setvar.remove("three123") #error,删除原来没有的元素会出错
print(setvar)

#discard() 删除集合中指定的值 (不存在的不删除 推荐使用)
setvar = {"one","two","three"}
res = setvar.discard("three123")
print(setvar)

3.冰冻集合 (只能做交差并补)

#frozenset 可墙砖容器类型数据变为冰冻集合
#冰冻集合一旦创建,不能再进行任何修改,只能做交差并补

#(1) 声明空的冰冻集合
fz = frozenset()
print(fz,type(fz))
fz = frozenset([1,2,3,4])
print(fz,type(fz))
#fz2 =frozenset("2345")  #注意字符串类型
fz2 = frozenset((2,3,4,5))
print(fz2,type(fz2))

fz2 = fz | fz2  #并集
print(fz2,type(fz2))

#fz1.add("456") #error 不允许添加或者删除操作

二.字典相关的函数

1.字典的相关函数(增删改查)

# (1)
dictvar = {}
dictvar['top'] ="剑圣"
dictvar['moddle'] = "妲己"
dictvar['bottom'] = "鲁班七号"
dictvar['jungle'] = "刘备"
dictvar['support'] = "刘邦"
dictvar['top'] ="凯"
#如果键和前面的元素相同的情况下,将相同键的对应的值进行更新
print(dictvar)

#fromkeys() 使用一组键和默认值创建字典
listvar = ["a","b"]
dict = {}.fromkeys(listvar,None)
print(dict)

#不推荐使用fromkeys
'''
dict = {}.fromkeys(listvar,[])
dic['a'].append(55)
print(dict('b'))
'''

#(2) 删除
#pop() 通过键去删除键值对(若没有该键可设置默认值,预防报错)
dictvar = {'top': '凯', 'middle': '妲己', 'bottom': '鲁班七号', 'jungle': '刘备', 'support': '刘邦'}
dictvar.pop('middle')
print(dictvar)

#dictvar.pop("modegdiqg")
dictvar.pop("dgqidq","该键不存在")
print(dictvar)

#popitem()  删除最后一个键值对 3.6版本
dictvar = {'top': '凯', 'middle': '妲己', 'bottom': '鲁班七号', 'jungle': '刘备', 'support': '刘邦'}
dictvar.popitem()
print(dictvar)

#clear() 清空字典
dictvar.clear()
print(dictvar)

#(3)
#update() 批量更新(有该键就更新,没有该键就添加)
dict = { 'jungle': '刘备', 'support': '刘邦'}
#dict.update{{'top':"关羽",'middle':"武则天"}}
#写法一 (推荐)
dict.update({'top':"花木兰",'middle':"武则天","support":"蔡文姬"})
print(dict)

#写法二:
dict.update(abc="23",bbb="3ew",ccc="4567")
print(dict)

#(4)
#get() 通过键获取值(若没有该键可设置默认值,预防报错)
dictvar = {'top': '凯', 'middle': '妲己', 'bottom': '鲁班七号', 'jungle': '刘备', 'support': '刘邦'}
#dictvar['top123'] error
res = dictvar.get("top123")
#如果没有该键,默认返回None,如果指定默认值,则返回默认值
res = dictvar.get("top123","对不起,没有该键")
print(res)

2.字典的方法 keys() values() items()

#keys() 将字典的键组成新的迭代对象
dictvar = {'top': '凯', 'middle': '妲己', 'bottom': '鲁班七号', 'jungle': '刘备', 'support': '刘邦'}
for i in dictvar:
    print(i)

#能够遍历就证明具有可迭代性
res = dictvar.keys()
print(res)

for i in res:
    print(i)

#values() 将字典中的值组成新的可迭代对
res = dictvar.values()
print(res)
for i in res:
    print(i)

#items() 将字典的键值对凑成一个个元组,组成新的可迭代对象
res = dictvar.items()
print(res)
for i in res:
    print(i)

for a,b in res:
    print(a,b)

Python 基础之集合相关操作与函数和字典相关函数的更多相关文章

  1. Python基础-week03 集合 , 文件操作 和 函数详解

    一.集合及其运算 1.集合的概念 集合是一个无序的,不重复的数据组合,它的主要作用如下 *去重,把一个列表变成集合,就自动去重了 *关系测试,测试两组数据之前的交集.并集.差集.子集.父级.对称差集, ...

  2. python基础学习1-类相关内置函数

    #!/usr/bin/env python # -*- coding:utf-8 -*- #===issubclass(class,classinfo) 检查class是否是classinfo类的子类 ...

  3. day07-Python运维开发基础(深/浅拷贝、字典/集合/相关操作)

    1. 深拷贝与浅拷贝 # ### 深拷贝 和 浅拷贝 """ a = 7 b = a a = 8 print(b) lst1 = [1,2,3] lst2 = lst1 ...

  4. python 集合相关操作

    集合相关操作 集合是一个无序的,不重复的数据组合,它有着两个主要作用:去重以及关系测试. 去重指的是当把一个列表变成了集合,其中重复的内容就自动的被去掉了 关系测试指的是,测试两组数据之间的交集.差集 ...

  5. python集合相关操作

    集合相关操作 集合是一个无序的,不重复的数据组合,它有着两个主要作用:去重以及关系测试. 去重指的是当把一个列表变成了集合,其中重复的内容就自动的被去掉了 关系测试指的是,测试两组数据之间的交集.差集 ...

  6. python基础数据类型--集合(set)

    python基础数据类型--集合(set) 集合是一个数学概念由一个或多个确定的元素所构成的整体叫做集合 集合中的三个特征 1.确定性(元素必须死可hash) 2.互异性(去重) 3.无序性(集合中的 ...

  7. python基础深入(元组、字符串、列表、字典)

    python基础深入(元组.字符串.列表.字典) 一.列表 1.追加 >>>list = [1,2,3,4] #用于在列表末尾添加新的对象,只能单个添加,该方法无返回值,但是会修改原 ...

  8. python进阶---列表、字典、集合相关操作

    基本概念 列表 序列是python中一个基本的数据结构,每个元素都有一个索引index 操作 # 创建列表 list = [] # 修改列表 list[2] = 2001 # 删除列表 del lis ...

  9. python 基础学习笔记(6)--函数(2)

                                                                                                        ...

随机推荐

  1. MyBatis操作mysql数据库查询出来是时间戳的问题

    在pojo类中用java.sql.Date接收就能正常显示

  2. Go之NSQ

    文章引用自 NSQ NSQ是目前比较流行的一个分布式的消息队列,本文主要介绍了NSQ及Go语言如何操作NSQ. NSQ介绍 NSQ是Go语言编写的一个开源的实时分布式内存消息队列,其性能十分优异. N ...

  3. 【IO多路复用】

    " 目录 一.IO模型介绍 二.阻塞IO(blocking IO) 三.非阻塞IO(non-blocking IO) 四.多路复用IO(IO multiplexing) 五.异步IO(Asy ...

  4. python加密算法及其相关模块的学习(hashlib,RSA,random,string,math)

    加密算法介绍 一,HASH Hash,一般翻译做“散列”,也有直接音译为”哈希”的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值.这种 ...

  5. C语言:根据形参c中指定的英文字母,按顺序打印出若干后继相邻字母,-主函数中放入一个带头节点的链表结构中,h指向链表的头节点。fun函数找出学生的最高分-使用插入排序法对字符串中的字符进行升序排序。-从文件中找到指定学号的学生数据,读入次学生数据,

    //根据形参c中指定的英文字母,按顺序打印出若干后继相邻字母,输出字母的大小与形参c一致,数量由形参d指定.例如:输入c为Y,d为4,则输出ZABC. #include <stdio.h> ...

  6. Vue-阻止页面回退

    1.原生js方法 <script language="javascript"> //防止页面后退 使用在vue时 挂载到mounted中 history.pushSta ...

  7. Protobuf协议--java实现

    Protobuf协议,全称:Protocol Buffer 它跟JSON,XML一样,是一个规定好的数据传播格式.不过,它的序列化和反序列化的效率太变态了…… 来看看几张图你就知道它有多变态.  pr ...

  8. Java单例和多例

    背景:最近在学习韩老师的笔记时候发现不是很了解单例和多例,于是通过网上查找资料的方式去学习. 设计模式:最佳的实践,是软件开发人员在软件开发过程中面临一般解决方案,也就是开发的经验总结. 单例模式(S ...

  9. 炼金术(2): 为什么要用issue管理软件

    在项目开发中,存在的无数的任务分解,问题管理,流程跟踪.因为直接说话或者直接在IM里喊话是很容易的,所以在一个还没有习惯使用issue管理软件的团队中,直接说话或者直接在IM里AT,就在某些时候变成了 ...

  10. Cisco Cat4500系列High CPU故障步骤摘要

    在实际网络环境中,很多时候都会出现设备high CPU的情况,有些时候可能是bug,而某些情况下,也可能是网络中发生了变化,导致了设备出现high CPU情况,这里主要记录一下Cisco Cat450 ...