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个。