41. set()函数:将可迭代对象转换为可变集合

41. set()函数:将可迭代对象转换为可变集合

1. set( )函数的作用

【作用】

set( )函数用于将可迭代对象转换为一个无序的不重复元素的可变集合。

【返回值】

返回的集合是可以修改的,我们可以对集合元素进行添加或删除等,也可以对集合进行交集、并集、差集等操作。

2. set( )函数的语法

set( )函数由3部分组成:

  1. 函数名:set

  2. 英文圆括号:( )

  3. set函数的参数:要转换成集合的可迭代对象

在这里插入图片描述

3. set函数创建空集合

空列表、空元组、空字典的创建都有两种方法:符号法和函数法。

字典和集合都用英文大括号{ }表示。

英文大括号{ }只能创建空字典,不能创建空集合。

空集合只能用set( )函数创建。

【方法1:符号法】

  1. 用英文中括号[ ]创建空列表。

  2. 用英文圆括号( )创建空元组。

  3. 用英文大括号{ }创建空字典。

# 新建空列表
list_0 = [ ]

# 新建空元组
tuple_0 = ( )

# 新建空字典
dict_0 = { }

# type函数查看数据类型
print(type(list_0))
print(type(tuple_0))
print(type(dict_0))

【终端输出】

<class 'list'>
<class 'tuple'>
<class 'dict'>

【方法2:函数法】

  1. 用list函数创建空列表。

  2. 用tuple函数创建空元组。

  3. 用dict函数创建空字典。

  4. 用set函数创建空集合。

# list函数不传入参数,创建一个空列表
list_1 = list ( )

# tuple函数不传入参数,创建一个空元组
tuple_1 = tuple ( )

# dict函数不传入参数,创建一个空字典
dict_1= dict ( )

# set函数不传入参数,创建一个空集合
set_1= set ( )

# type函数查看数据类型
print(type(list_1))
print(type(tuple_1))
print(type(dict_1))
print(type(set_1))

【终端输出】

<class 'list'>
<class 'tuple'>
<class 'dict'>
<class 'set'>

4. set函数的参数只能是可迭代对象

4.1 将字符串转换为集合

set_1 = set ('happy')
print('将字符串转换为集合:',set_1)

# type函数查看数据类型
print(type(set_1))

【终端输出】

将字符串转换为集合: {'h', 'p', 'a', 'y'}
<class 'set'>

上述代码用set()函数将字符串'happy'转换为集合。

集合的元素是不能重复的,因此p字符只保留1个。

转换后的集合含有4个元素。

4.2 set( )函数的参数不能为整数

set_2 = set (1000)
print('将整数转换为集合:',set_2)

【终端输出】

TypeError: 'int' object is not iterable

set函数的参数为整数,程序报错。

‘int’ object is not iterable:“int”对象不可迭代。

4.3 set( )函数的参数不能为浮点数

set_3 = set (0.79)
print('将整数转换为集合:',set_3)

【终端输出】

TypeError: 'float' object is not iterable

set函数的参数为浮点数,程序报错。

‘float’ object is not iterable:“float”对象不可迭代。

4.4 set( )函数的参数不能为布尔类型

set_4= set (True)
print('将整数转换为集合:',set_4)

【终端输出】

TypeError: 'bool' object is not iterable

set函数的参数为布尔值,程序报错。

‘bool’ object is not iterable:“bool”对象不可迭代。

4.5 将列表转换为集合

set_5 = set (['张三','李四','王五'])         
print(' 将列表转换为集合:',set_5)    

# type函数查看数据类型
print(type(set_5))      

【终端输出】

 将列表转换为集合: {'李四', '张三', '王五'}
<class 'set'>

集合是无序的,转换后集合的顺序可能会有所变化。

4.6 将元组转换为集合

set_6 = set (('张三','李四','王五'))     
print(' 将元组转换为集合:',set_6)      

# type函数查看数据类型
print(type(set_6))

【终端输出】

 将元组转换为集合: {'李四', '张三', '王五'}
<class 'set'>

4.7 将字典转换为集合

# 字典也用{}表示
dict_1 = {
    'name':'andy',
    'age':'20',
    'sex':'female'
}
set_7 =set(dict_1)
print('将字典转换为集合',set_7)

# type函数查看数据类型
print(type(set_7))

【终端输出】

将字典转换为集合 {'sex', 'name', 'age'}
<class 'set'>

【温馨提示】

set()函数仅作用于字典的键(key),输出的集合只包含字典的键(key)

字典的键:‘name’, ‘age’, ‘sex’

字典的值:‘andy’, ‘20’, ‘female’

4.8 将集合转换为集合

set_8 = set ({'张三','李四','王五'})    
print(' 将集合转换为集合:',set_8)      

# type函数查看数据类型
print(type(set_8))

【终端输出】

 将集合转换为集合: {'李四', '张三', '王五'}
<class 'set'>

4.9 将range对象转换为集合

set_9 = set (range(9))
print(' 将range对象转换为集合:',set_9)

# type函数查看数据类型
print(type(set_9))

【终端输出】

 将range对象转换为集合: {0, 1, 2, 3, 4, 5, 6, 7, 8}
<class 'set'>

5. set()函数的参数只能有一个

set_1 = set ('人数苦短','我学Python')
print('多个字符串不能转换为集合:',set_1)

【终端输出】

TypeError: set expected at most 1 argument, got 2

上述set函数里有2个参数。

参数1是字符串’人数苦短’。

参数2是’我学Python’。

set函数只能有1个参数,有多个参数时,程序会报错。

set expected at most 1 argument, got 2:集合预期最多1个参数,但得到2个。

6. 总结

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值