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

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

1.语法要点

在这里插入图片描述

可迭代对象:字符串、元组、列表、字典、集合。
不可迭代对象:整数、浮点数。

2.实操练习

(1)创建空集合

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

【终端输出】

空集合 set()
# 新建空列表
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'>
# 新建空列表
list_0 = list()

# 新建空元组
tuple_0 = tuple( )

# 新建空字典
dict_0 = dict( )

# 新建空集合
set_0 =set( )

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

【终端输出】

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

空列表、元组、字典的创建都有两种方式,但空集合的创建方式只有一种。
创建空集合只能用set函数,不能用{},{}创建的是空字典。

(2)将字符串转换为集合

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

【终端输出】

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

用set()函数将字符串转换为集合。
集合的元素是不能重复的,因此p字符只保留1个。

(3)将列表转换为集合

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

【终端输出】

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

(4)将元组转换为集合

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

【终端输出】

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

(5)将字典转换为集合

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

【终端输出】

将字典转换为集合 {'age', 'name', 'sex'}

set()函数仅作用于字典的键(key),输出的集合只含字典的键(key)。
字典的键:‘name’, ‘age’, ‘sex’
字典的值:‘Lily’, ‘20’, ‘female’

(6)将集合转换为集合

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

【终端输出】

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

(7)将range对象转换为集合

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

【终端输出】

 将range对象转换为集合: {0, 1, 2, 3, 4, 5, 6}

(8)不能将整数转换为集合

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

【终端输出】

TypeError: 'int' object is not iterable

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

(9)不能将浮点数转换为集合

set_2 = set(77.520)
print('不能将浮点数转换为集合:',set_2)

【终端输出】

TypeError: 'float' object is not iterable

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

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

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

【终端输出】

TypeError: set expected at most 1 argument, got 2

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

3.知识回顾

(1)random库知识

# 导入库
import random 

# 模块.randint(下限,上限)
# 随机生成一个1到10的数,包含1和10
print(random.randint(1,10))

【终端输出】

9

每点一次运行,得到的数可能都是不一样的。
但都在1和10之间。

random [ˈrændəm]:任意的,任意选取的。
random是Python的内置库,不需要安装,直接导入就能使用。
random库的作用是生成一个随机数。

random.randint(a, b):作用是生成一个指定范围内的整数。
随机生成一个a到b的数,包含a和b。
a <= 随机数 <= b。

(2)for循环和range函数

for i in range(0,4) :
    print(i)

【终端输出】

0
1
2
3

for循环和range函数搭配使用可以控制循环的次数。
range函数含前不含后。
range函数含0不含4,所以输出结果没有4。

(3)append()方法——添加列表元素

# 新建列表
list_1 = ['赵','钱','孙','李']

# 列表名.append(要添加的元素)
list_1.append('王二麻子')

# 查看添加元素后的列表
print(list_1)

【终端输出】

['赵', '钱', '孙', '李', '王二麻子']

4.综合练习

去掉随机数中的重复数字

# 导入库
import random 

# 新建一个空列表用于存储随机数
list_0 = []

# 用for和range控制循环次数:
# (0,10) 表示循环次数为10次
for i in range(0,10) :
    
    # 将每次随机生成的数字添加到列表中
    list_0.append(random.randint(1,10))

# 用set函数将列表转换为集合
# 集合名= set(要转换的对象)
set_1 = set(list_0)

print('10次提取随机数组成的列表:',list_0)
print('去掉重复数字的集合为:',set_1)

# len函数查看列表、集合的元素个数
print('列表元素个数',len(list_0))
print('集合元素个数',len(set_1))

【终端输出】

随机后的列表: [6, 4, 2, 1, 1, 4, 2, 5, 9, 1]
取掉重复数字的集合: {1, 2, 4, 5, 6, 9}
列表元素个数 10
集合元素个数 6

for循环10次,生成了10个随机数,因此列表的元素个数永远都为10。
集合的元素个数是不固定的。
每次生成的列表元素值不一样,去掉的重复元素个数就不一定,因此集合的元素个数也不一定。
大家多点击几次运行,查看输出结果。

5.总结

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值