41. set()函数:将可迭代对象转换为可变集合
文章目录
- 41. set()函数:将可迭代对象转换为可变集合
 - 1. set( )函数的作用
 - 2. set( )函数的语法
 - 3. set函数创建空集合
 - 4. set函数的参数只能是可迭代对象
 - 4.1 将字符串转换为集合
 - 4.2 set( )函数的参数不能为整数
 - 4.3 set( )函数的参数不能为浮点数
 - 4.4 set( )函数的参数不能为布尔类型
 - 4.5 将列表转换为集合
 - 4.6 将元组转换为集合
 - 4.7 将字典转换为集合
 - 4.8 将集合转换为集合
 - 4.9 将range对象转换为集合
 
- 5. set()函数的参数只能有一个
 - 6. 总结
 
1. set( )函数的作用
【作用】
set( )函数用于将可迭代对象转换为一个无序的不重复元素的可变集合。
【返回值】
返回的集合是可以修改的,我们可以对集合元素进行添加或删除等,也可以对集合进行交集、并集、差集等操作。
2. set( )函数的语法
set( )函数由3部分组成:
-  
函数名:
set -  
英文圆括号:
( ) -  
set函数的参数:要转换成集合的可迭代对象
 

3. set函数创建空集合
空列表、空元组、空字典的创建都有两种方法:符号法和函数法。
字典和集合都用英文大括号{ }表示。
英文大括号{ }只能创建空字典,不能创建空集合。
空集合只能用set( )函数创建。
【方法1:符号法】
-  
用英文中括号
[ ]创建空列表。 -  
用英文圆括号
( )创建空元组。 -  
用英文大括号
{ }创建空字典。 
# 新建空列表
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:函数法】
-  
用list函数创建空列表。
 -  
用tuple函数创建空元组。
 -  
用dict函数创建空字典。
 -  
用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. 总结




![[蓝牙 Mesh  Zephyr]-[005]-Key](https://img-blog.csdnimg.cn/c2a66cf55e2c4e429af989e1c36f620b.png)


![[附源码]JAVA毕业设计客户台账管理(系统+LW)](https://img-blog.csdnimg.cn/f5b7e5c20cfd462496b7a8e4da85e210.png)












