Python--集合(set)以及数据类型与set的转换

一、set介绍

  set:类似dict,是一组key的集合,不存储value

  本质:无序和无重复元素的集合

  可以使用大括号 { } 或者 set() 函数创建集合。

  注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

二、创建set

  创建set需要一个list或者tuple或者dict作为输入集合

创建格式:
parame = {value01,value02,…}
或者
set(value)

三、重复元素在set中会自动被过滤

(一)集合里为列表

s1 = set([1,2,3,4,5,3,4,5])
print(s1)                   #输出:{1, 2, 3, 4, 5}
print(type(s1))             #<class 'set'>

(二)集合里为元组

s2 = set((1,2,3,3,2,1))
print(s2)                  #输出:{1, 2, 3}

(三)集合里为字典

s3 = set({1:"good", 2:"nice"})
print(s3)                  #输出:{1, 2}  只把key取了出来

四、集合的基本操作

(一)集合元素的添加(set.add)

s4 = set([1,2,3,4,5])
s4.add(6)                  #{1, 2, 3, 4, 5, 6}
s4.add(3)                  #可以添加重复的,但是不会有效果
#s4.add([7,8,9])           #报错
s4.add((7,8,9))            #{1, 2, 3, 4, 5, 6, (7, 8, 9)}
#s4.add({1:"a"})           #报错
print(s4)

(二)插入整个list、tuple、字符串、打碎插入(set.update)

s5 = set([1,2,3,4,5])
s5.update([6,7,8])          #{1, 2, 3, 4, 5, 6, 7, 8}

s5 = set([1,2,3,4,5])
s5.update((9,10))           #{1, 2, 3, 4, 5, 9, 10}

s5 = set([1,2,3,4,5])
s5.update("luck")           #{1, 2, 3, 4, 5, 'c', 'k', 'u', 'l'}

s5 = set([1,2,3,4,5])
s5.update("never","luck")   #{'u', 1, 2, 3, 4, 5, 'k', 'l', 'n', 'r', 'v', 'c', 'e'}

(三)删除(set.remove)

s6 = set([1,2,3,4,5])
s6.remove(3) 
print(s6)                    #{1, 2, 4, 5}

(四)遍历

s7 = set("hello")
for i in s7:
    print(i)
'''
输出:
h
o
e
l
'''
#set没有索引
#print((s7[3]))#会报错
s7 = set("money")
for index, data in enumerate(s7):
    print(index, data)
'''
0 y
1 n
2 o
3 e
4 m
'''

(五)交集

s8 = set([1,2,3])
s9 = set([2,3,4])

a1 = s8 & s9             #交集
print(a1)                #{2, 3}
print(type(a1))          #<class 'set'>

(六)并集

s8 = set([1,2,3])
s9 = set([2,3,4])

a2 = s8 | s9             #并集
print(a2)                #{1, 2, 3, 4}
print(type(a2))          #<class 'set'>

五、类型转换

(一)list→set

ll = [1,2,3,4,5]
s1 = set(ll)           
print(s1)               #{1, 2, 3, 4, 5}
print(type(s1))         #<class 'set'>

(二)tuple→set

t2 = (1,2,3,4,3,2)
s2 = set(t2)
print(s2)               #{1, 2, 3, 4}
print(type(s2))         #<class 'set'>

(三)set→list

s3 = {1,2,3}
l3 = list(s3)
print(l3)              #[1, 2, 3]
print(type(l3))        #<class 'list'>

(四)set→tuple

s4 = {2,3,4,5}
t4 = tuple(s4)
print(t4)              #(2, 3, 4, 5)
print(type(t4))        #<class 'tuple'>
  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第一章Python基本 6 一Python 简介 6 (一) Python 定义 6 (二) Python程序的执行方式 7 (三)Linux常用命令 7 (四)执行过程 8 (五)解释器类型 8 (六)调试 9 二 数据基本运算 9 (一)pycharm常用快捷键(编译器) 9 (二) 函数 函数名(参数) 10 (三)变量 存储数据 11 (四)del 语句 14 (五)核心数据类型 14 (六)数据类型转换 16 (七)运算符 17 三 语句 23 (一)行 23 (二)pass 语句 23 (三)选择语句 24 (四)循环语句 25 (五)跳语句 30 (六)print相关函数 30 四 容器类型 30 (一)通用操作 30 (二)字符串 str(不可变序列+字符编码值) 33 (二) 列表 list (预留空间+可变序列+储存变量) 35 (四) 元组 tuple(按需分配+不可变序列+存储变量) 44 (五) 字典 dict (按键取值+可变散列+存储键值对) 46 (六) 集合 set (去重复/数学运算+存储键+可变散列) 52 (七)固定集合 frozenset 54 五 函数 function(小而精) 55 (一)pycharm相关设置 55 (二)定义 55 (三)作用 56 (四)定义函数 56 (五)调用函数 56 (六)返回值 57 (七)可变/不可变类型在传参时的区别 58 (八)函数参数 59 六 作用域LEGB 66 (一)变量名的查找规则 66 (二)局部变量 66 (三)全局变量 66 (四)global 语句 67 (五)nonlocal 语句(外部嵌套) 67 第二章 面向对象 Object Oriented 68 一 概述 68 (一)面向过程 68 (二)面向对象 68 二 类和对象 69 (一)语法 70 (二)实例成员 72 (三)类成员 75 (四)静态方法 76 (总结)类和对象 77 三 三大特征 78 (总结)三大特征 78 (一)封装(按需求分,按行为分) 78 (二)继承(抽象 -> 统一 -> 隔离) 86 (三) 多态 90 四 设计原则 95 (总结)设计原则 95 (一)开-闭原则(目标、总的指导思想,增加不改变原代码) 95 (二)类的单一职责(一个类的定义) 96 (三)依赖倒置(依赖抽象) 96 (四)组合复用原则(复用的最佳实践) 96 (五)里氏替换(扩展重写,继承后的重写,指导继承的设计) 96 (六)迪米特法则(用父类减少传递数据量,类与类交互的原则) 97 第三章 模块包+函数式编程 98 通用:快捷键 98 一 模块 Module 98 (一)定义: 包含一系列数据、函数、类的文件,通常以.py结尾。 99 (二)作用 99 (三)导入 99 (四) 模块变量 100 (五)加载过程 100 (六)分类 101 (七)搜索顺序 102 二 包package 102 (一)定义:将模块以文件夹的形式进行分组管理。 102 (二)作用:让一些相关的模块组织在一起,使逻辑结构更加清晰。 102 (三)导入 102 (四) 搜索顺序 103 三 异常处理Error 104 (一)异常 104 (二)处理 105 (三)raise 语句 106 (四)自定义异常:为了快速传递错误信息 108 四 迭代 108 (一)可迭代对象iterable 109 (二) 迭代器对象iterator 110 五 生成器generator 113 (一)生成器函数 114 (二)内置生成器 116 (三)生成器表达式 116 六 函数式编程 118 (一)函数作为参数 119 (二)内置高阶函数 122 (三) 函数作为返回值 124

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值