Python教程

[转载] python set大小_python set集合

本文主要是介绍[转载] python set大小_python set集合,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

参考链接: Python集合set

Python set集合

 最后更新于:2020-03-21 12:06:03

 在python变量中除了以前文章所提到的整形int / 浮点数float / 布尔值bool / 列表list / 字典dict 之外,还有一个类型我们还没有做详细介绍,这个变量类型就是集合set。

 

 一.set集合简介

 python set集合使用大括号 { }表示,与字典dict不同的是set集合并没有key/value键值对,主要有以下两个特点:

 1.元素不允许重复

 2.set 不记录元素的添加顺序,即是无序的,和字典类似

 # !usr/bin/env python

 # -*- coding:utf-8 _*-

 """

 @Author:何以解忧

 @Blog(个人博客地址): shuopython.com

 @WeChat Official Account(微信公众号):猿说python

 @Github:www.github.com

 @File:python_set.py

 @Time:2019/11/09 21:25

 @Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!

 """

 # 创建一个空集合set

 set_a = set()

 # 打印集合set

 print(set_a)

 # 查看类型

 print(type(set_a))

 print("***"*20)

 # 创建一个集合

 set_b = {"猿说python",False}

 print(type(set_b))

 print(set_b)

 print("***"*20)

 # 创建一个字典

 dict_b = {"name":"猿说python","url":"www.shuopython.com"}

 print(type(dict_b))

 print(dict_b)

 输出结果:

 set()

 ************************************************************

 {False, '猿说python'}

 ************************************************************

 {'name': '猿说python', 'url': 'www.shuopython.com'}

 代码分析:观察上面代码,虽然字典dict 和 集合set 都是由{}构成,注意字典由键值对key/value构成,而集合确是由一个一个数据构成,和列表的元素类似!

 

 二.set集合常用函数

 add()  — 向 set 集合中添加元素;

 remove() — 删除元素,如果集合中不包含被删除的元素,remove() 方法会报出 KeyError 异常;

 discard()  — 删除元素,如果集合中不包含被删除的元素,不会有任何提示或者 异常;

 clear() —  就是清空白 set 集合;

 copy() — 拷贝一个集合;

 difference()— 返回多个集合的差集;

 difference_update() — 移除集合中的元素,该元素在指定的集合也存在;

 intersection() — 返回集合的交集,不改变集合本身,而是返回两个集合的交集;

 intersection_update() — 返回集合的交集,会通过交集运算改变第一个集合;

 isdisjoint() — 判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False;

 issubset() — 判断指定集合是否为该方法参数集合的子集;

 issuperset() — 判断该方法的参数集合是否为指定集合的子集;

 pop() — 随机移除元素;

 symmetric_difference() — 移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中;

 union() — 返回两个集合的并集;

 update() — 用于修改当前集合,可以添加新的元素或集合到当前集合中,如果添加的元素在集合中已存在,则该元素只会出现一次,重复的会忽略;

 # 使用花括号构建set集合

 c = {'乔峰',"段誉","虚竹","天龙八部","射雕英雄传"}

 # 添加元素

 c.add("天山姥姥")

 c.add(6)

 print("c集合的元素个数为:" , len(c))

 print(c)

 # 删除指定元素

 c.remove("天山姥姥")

 print(c)

 print("c集合的元素个数为:" , len(c))

 print("***"*20)

 # 判断是否包含指定字符串

 print("c集合是否包含'乔峰'字符串:" , ("乔峰" in c)) # 输出True

 print("***"*20)

 # 使用set()函数(构造器)来创建set集合

 movies = set()

 movies.add("天龙八部")

 movies.add("射雕英雄传")

 print("movies集合的元素:" , movies)

 # issubset()方法判断是否为子集合

 print("movies集合是否为c的子集合?", movies.issubset(c)) # 输出False

 # issuperset()方法判断是否为父集合

 # issubset和issuperset其实就是倒过来判断

 print("c集合是否完全包含books集合?", c.issuperset(movies)) # 输出False

 # 用c集合减去books集合里的元素,不改变c集合本身

 result1 = c - movies

 print(result1)

 # difference()方法也是对集合做减法,与用-执行运算的效果完全一样

 result2 = c.difference(movies)

 print(result2)

 # 用c集合减去books集合里的元素,改变c集合本身

 c.difference_update(movies)

 print("c集合的元素:" , c)

 # 删除c集合里的所有元素

 c.clear()

 print("c集合的元素:" , c)

 print("***"*20)

 # 直接创建包含元素的集合

 d = {"python面向对象", 'python基础', 'python爬虫'}

 print("d集合的元素:" , d)

 # intersection()方法也是获取两个集合的交集,与用&执行运算的效果完全一样

 inter2 = d.intersection(movies)

 print(inter2)

 # 计算两个集合的交集,改变d集合本身

 d.intersection_update(movies)

 print("d集合的元素:" , d)

 print("***"*20)

 # 将range对象包装成set集合

 e = set(range(5))

 f = set(range(3, 7))

 print("e集合的元素:" , e)

 print("f集合的元素:" , f)

 # 计算两个集合的并集,不改变e集合本身

 un = e.union(f)

 print('e和f执行并集的结果:', un)

 # 计算两个集合的并集,改变e集合本身

 e.update(f)

 print('e集合的元素:', e)

 输出:

 c集合的元素个数为: 7

 {'天龙八部', 6, '虚竹', '乔峰', '段誉', '天山姥姥', '射雕英雄传'}

 {'天龙八部', 6, '虚竹', '乔峰', '段誉', '射雕英雄传'}

 c集合的元素个数为: 6

 ************************************************************

 c集合是否包含'乔峰'字符串: True

 ************************************************************

 movies集合的元素: {'天龙八部', '射雕英雄传'}

 movies集合是否为c的子集合? True

 c集合是否完全包含books集合? True

 {'乔峰', '段誉', 6, '虚竹'}

 {'乔峰', '段誉', 6, '虚竹'}

 c集合的元素: {6, '虚竹', '乔峰', '段誉'}

 c集合的元素: set()

 ************************************************************

 d集合的元素: {'python爬虫', 'python基础', 'python面向对象'}

 set()

 d集合的元素: set()

 ************************************************************

 e集合的元素: {0, 1, 2, 3, 4}

 f集合的元素: {3, 4, 5, 6}

 e和f执行并集的结果: {0, 1, 2, 3, 4, 5, 6}

 e集合的元素: {0, 1, 2, 3, 4, 5, 6}

 

 三.set集合运算符

 <=:相当于调用 issubset() 方法,判断前面的 set 集合是否为后面的 set 集合的子集合。

 >=:相当于调用 issuperset() 方法,判断前面的 set 集合是否为后面的 set 集合的父集合。

 –:相当于调用 difference() 方法,用前面的 set 集合减去后面的 set 集合的元素。

 &:相当于调用 intersection() 方法,用于获取两个 set 集舍的交集。

 ^:计算两个集合异或的结果,就是用两个集合的并集减去交集的元素。

 # 使用花括号构建set集合

 c = {'乔峰',"段誉","虚竹","天龙八部","射雕英雄传"}

 # 使用set()函数(构造器)来创建set集合

 movies = set()

 movies.add("天龙八部")

 movies.add("射雕英雄传")

 print("movies集合的元素:" , movies)

 # issubset()方法与<=运算符效果相同

 print("movies集合是否为c的子集合?", (movies <= c)) # 输出False

 print("***"*20)

 e = set(range(5))

 f = set(range(3, 7))

 print("e集合的元素:" , e)

 print("f集合的元素:" , f)

 # 对两个集合执行异或运算

 xor = e ^ f

 print('e和f执行xor的结果:', xor)

 # 直接创建包含元素的集合

 d = {"python面向对象", 'python基础', 'python爬虫'}

 print("d集合的元素:" , d)

 # 计算两个集合的交集,不改变d集合本身

 inter1 = d & movies

 print(inter1)

 输出结果:

 movies集合的元素: {'天龙八部', '射雕英雄传'}

 movies集合是否为c的子集合? True

 ************************************************************

 e集合的元素: {0, 1, 2, 3, 4}

 f集合的元素: {3, 4, 5, 6}

 e和f执行xor的结果: {0, 1, 2, 5, 6}

 d集合的元素: {'python基础', 'python面向对象', 'python爬虫'}

 set()

 

 猜你喜欢:

 技术交流、商务合作请直接联系博主

 扫码或搜索:猿说python

 

 猿说python

 微信公众号 扫一扫关注

 赞赏

 微信赞赏支付宝赞赏

这篇关于[转载] python set大小_python set集合的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!