python学习

您所在的位置:网站首页 pop函数用法python集合 python学习

python学习

2024-07-17 04:45| 来源: 网络整理| 查看: 265

集合 创建集合的使用

创建

字典的keys和values的返回值是list,并不是set,set是用{}

set和元组类似,不可变对象,该对象所指向的内存中的值不能被改变。即元素不能修改值。 set内部是无序的,每次运行打印的结果会不一样。

见代码:

set1 = {'a', 'b', 'c'} print(type(set1)) print('a' in set1) lst1 = [1, 2, 3, 4, 5, 6, 6, 4, 5, 6] set2 = set(lst1) print(set2, type(set2))

运行结果: 在这里插入图片描述

回顾一下到目前为止,学过的python的数据类型及定义:

int1 = 3 print("int1 = ", int1, type(int1)) flt1 = 1.0 print("flt1 = ", flt1, type(flt1)) str1 = 'sdf' print("str1 = ", str1, type(str1)) bool1 = True print("bool1 = ", bool1, type(bool1)) lst1 = [1, 2, 'a', 'b', [1, 2, 'a', 'b']] print("lst1 = ", lst1, type(lst1)) tup1 = (1, 2, 'a', 'b', [1, 2, 'a', 'b']) print("tup1 = ", tup1, type(tup1)) dict1 = { 1: 'a', 2: 'b', 3: 'c', 4: 'd' } print("dict1 = ", dict1, type(dict1)) set1 = {1, 2, 'a', (3, 4, 'b')} print("set1 = ", set1, type(set1))

运行结果: 在这里插入图片描述 因为set的特性,所有set嵌套时,只能嵌套不可变类型,但是我这里还是有个疑问,为什么能嵌套元组,而不能嵌套set呢? 在这里插入图片描述 经过网友们的解答,明白了其中原因,因为我代码中的元组的元素都是不可变的,所以这个元组的地址是固定的,假如我的这个元组里面增加了一个list,那这个元组就不是hashable的。

set2 = {1, 2, 'a', (3, 4, ['b', 's'])} print("set2 = ", set2, type(set2))

在这里插入图片描述 所以集合和元组还是蛮相似的,不过呢,集合能够自动去重。

set2 = {1, 2, 'a', (3, 4), 1, 2, 'a', (3, 4), 1, 2, 'a', (3, 4)} print("set2 = ", set2, type(set2))

通过代码,能看得出来这个集合的元素是重复的,我们看看运行结果呢? 在这里插入图片描述 重复的元素被自动清除了。

集合的使用

集合常用方法

set3 = {2, 3, 's', 'd', 'f', 6} print("set3 = ", set3, type(set3)) set3.add(5) print("set3 = ", set3, type(set3)) set3.remove(5) print("set3 = ", set3, type(set3)) set3.add(4) set3.add(4) print("set3 = ", set3, type(set3)) str2 = 'sadfadfa' set4 = set(str2) print("set4 = ", set4, type(set4)) print('set3 & set4 = ', set3 & set4) print('set3 | set4 = ', set3 | set4) print('set3 ^ set4 = ', set3 ^ set4) print('set3 - set4 = ', set3 - set4) print('set4 - set3 = ', set4 - set3)

运行结果: 在这里插入图片描述 其中用到了remove,其实这个方法不太友好,如果移除不存在的元素,会报错。所以要配合使用场景来决定是使用remove,还是discard。如果需要删除不存在元素报错,那就用remove。如果需要删除不存在元素,不报错,那就使用discard。

print("set3 = ", set3, type(set3)) set3.discard(15) set3.discard(2) set3.discard('ss') print("set3 = ", set3, type(set3))

运行结果: 在这里插入图片描述 使用discard不会报错,成功运行。 pop函数,随机弹出一个元素; clear函数,清空set; 判断元素是否在集合中存在,2 in set3; 在这里插入图片描述

集合的基本操作都囊括了,本文到此也结束了。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3