百木园-与人分享,
就是让自己快乐。

Python set集合 - Python零基础入门教程

目录

  • 一.set 集合简介
  • 二.set 集合常用函数
  • 三.set 集合运算符
  • 四.猜你喜欢

零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门

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

Python set集合

一.set 集合简介

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

  • 1.元素不允许重复;
  • 2.set 不记录元素的添加顺序,即是无序的,和字典类似;

# !usr/bin/env python

# -_- coding:utf-8 \\__-

\"\"\"
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:Python set 集合.py
@Time:2021/04/04 11:00
@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.codersrc.com\"}
print(type(dict_b))
print(dict_b)

\'\'\'
输出结果:

set()
<class \'set\'>

***

<class \'set\'>
{False, \'猿说 python\'}

***

<class \'dict\'>
{\'name\': \'猿说 python\', \'url\': \'www.codersrc.com\'}
\'\'\'

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

Python set集合

二.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 — 用于修改当前集合,可以添加新的元素或集合到当前集合中,如果添加的元素在集合中已存在,则该元素只会出现一次,重复的会忽略;

# !usr/bin/env python

# -_- coding:utf-8 \\__-

\"\"\"
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:Python set 集合.py
@Time:2021/04/04 11:00
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!

\"\"\"

#  使用花括号构建 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}
\'\'\'

Python set集合

三.set 集合运算符

  • <=:相当于调用 issubset() 方法,判断前面的 set 集合是否为后面的 set 集合的子集合。
  • >=:相当于调用 issuperset() 方法,判断前面的 set 集合是否为后面的 set 集合的父集合。
  • –:相当于调用 difference() 方法,用前面的 set 集合减去后面的 set 集合的元素。
  • &:相当于调用 intersection() 方法,用于获取两个 set 集舍的交集。
  • ^:计算两个集合异或的结果,就是用两个集合的并集减去交集的元素。

# !usr/bin/env python

# -_- coding:utf-8 \\__-

\"\"\"
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:Python set 集合.py
@Time:2021/04/04 11:00
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!

\"\"\"

#  使用花括号构建 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 set集合

四.猜你喜欢

  • Python 字符串/列表/元组/字典之间的相互转换
  • Python 局部变量和全局变量
  • Python type 函数和 isinstance 函数区别
  • Python is 和 == 区别
  • Python 可变数据类型和不可变数据类型
  • Python 浅拷贝和深拷贝
  • Python 递归函数
  • Python sys 模块
  • Python 列表 list
  • Python 元组 tuple
  • Python 字典 dict
  • Python 条件推导式
  • Python 列表推导式
  • Python 字典推导式
  • Python 函数声明和调用
  • Python 不定长参数 *argc/**kargcs
  • 未经允许不得转载:猿说编程 » Python set 集合

    本文由博客 - 猿说编程 猿说编程 发布!

    来源:https://www.cnblogs.com/shuopython/p/14900718.html
    图文来源于网络,如有侵权请联系删除。

    未经允许不得转载:百木园 » Python set集合 - Python零基础入门教程

    相关推荐

    • 暂无文章