博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
集合类型内置方法与总结
阅读量:6929 次
发布时间:2019-06-27

本文共 4609 字,大约阅读时间需要 15 分钟。

目录

集合类型内置方法

用途:数学里的集合

定义方式:{ }内用逗号隔开多个元素,元素只能是不可变类型,有两个特 征 * 1.会删除重复值 * 2.会打乱集合内的值

hobby_set = {'reading','running','sleeping','singing','sleeping'}print(hobby_set)#自定义set方法hobby_list = ['reading','running','sleeping','singing','sleeping']def set1(hobby_list) :    s = set()    for i in hobby_list :        s.add(i)    print(s)set1(hobby_list)
{'singing', 'running', 'reading', 'sleeping'}

常用操作和内置方法:

优先掌握

# 长度lenhobby_set = {'reading','running','sleeping','singing','sleeping'}print(len(hobby_set))
4
# in 和 not inhobby_set = {'reading','running','sleeping','singing','sleeping'}print('reading' in hobby_set)print('read' in hobby_set)
TrueFalse
# | 并集 unionhobby_set = {'reading','running','sleeping','singing','sleeping'}hobby_set2 = {'reading','running','comic','swimming'}print(hobby_set | hobby_set2)print(hobby_set.union(hobby_set2))
{'reading', 'sleeping', 'comic', 'swimming', 'running', 'singing'}{'reading', 'sleeping', 'comic', 'swimming', 'running', 'singing'}
# & 交集 intersectionhobby_set = {'reading','running','sleeping','singing','sleeping'}hobby_set2 = {'reading','running','comic','swimming'}print(hobby_set & hobby_set2)print(hobby_set.intersection(hobby_set2))
{'running', 'reading'}{'running', 'reading'}
# - 差集 differdncehobby_set = {'reading','running','sleeping','singing','sleeping'}hobby_set2 = {'reading','running','comic','swimming'}print(hobby_set - hobby_set2)print(hobby_set2 - hobby_set)print(hobby_set.difference(hobby_set2))
{'singing', 'sleeping'}{'comic', 'swimming'}{'singing', 'sleeping'}
# ^ 对称差集 symmetric_differencehobby_set = {'reading','running','sleeping','singing','sleeping'}hobby_set2 = {'reading','running','comic','swimming'}print(hobby_set ^ hobby_set2)print(hobby_set2 ^ hobby_set)print(hobby_set.symmetric_difference(hobby_set2))
{'sleeping', 'comic', 'swimming', 'singing'}{'sleeping', 'comic', 'swimming', 'singing'}{'sleeping', 'comic', 'swimming', 'singing'}
# ==hobby_set = {'reading','running','sleeping','singing','sleeping'}hobby_set2 = {'reading','running','comic','swimming'}print(hobby_set == hobby_set2)
False
# 父集 :>  >=  issupersethobby_set = {'reading','running','sleeping','singing','sleeping'}hobby_set2 = {'reading','running','comic','swimming'}hobby_set3 = {'reading','sleeping'}print(hobby_set > hobby_set3)print(hobby_set2.issuperset(hobby_set3))
TrueFalse
# 子集 <  <=  issubsethobby_set = {'reading','running','sleeping','singing','sleeping'}hobby_set2 = {'reading','running','comic','swimming'}hobby_set3 = {'reading','sleeping'}print(hobby_set < hobby_set2)print(hobby_set3 < hobby_set2)print(hobby_set3.issubset(hobby_set))
FalseFalseTrue

需要掌握

# adds = {1,3,6}print(s.add(4))print(s)s.add('haha')print(s)
None{1, 3, 4, 6}{1, 3, 4, 6, 'haha'}
# removes = {1,3,6}s.remove(6)print(s)# s.remove(9)   报错# print(s)
{1, 3}
# difference_updates = {1,3,6,9,4}s2 ={1,3,6,5,8}print(s.difference_update(s2))print(s)print(s2)
None{4, 9}{1, 3, 5, 6, 8}
# discards = {1,3,6,5,8,2}print(s.discard(3))print(s.discard(700)) #不会报错print(s)
NoneNone{1, 2, 5, 6, 8}
# isdisjoint  集合没有共同的部分返回True,否则返回Falses = {1,3,6,9,4}s2 ={1,3,6,5,8}s3 = {7}print(s.isdisjoint(s2))print(s.isdisjoint(s3))
FalseTrue

存一个值or多个值 : 多个值

有序 or 无序 :无序

可变 or 不可变 :可变

s = {1,2}print(s)print(id(s))s.add(3)print(s)print(id(s))
{1, 2}2375254726696{1, 2, 3}2375254726696

总结

存值个数区分(掌握)

存值个数 数据类型
一个值: 整型、浮点型、字符串
多个值: 列表、字典、元组、集合

按可变不可变区分(掌握)

可变or不可变 数据类型
可变: 列表、字典、集合
不可变: 整型、浮点型、字符串

有序无序区分(掌握)

有序or无序 数据类型
有序: 列表、元组、字符串
无序: 字典、集合

浅拷贝和深拷贝

拷贝

内置方法

lis = [1,3,6,[4,5]]lis2 = lis.copy()print(lis)print(lis2)lis.append(7)print(lis)print(lis2)lis[3][0] = 9print(lis)print(lis2)
[1, 3, 6, [4, 5]][1, 3, 6, [4, 5]][1, 3, 6, [4, 5], 7][1, 3, 6, [4, 5]][1, 3, 6, [9, 5], 7][1, 3, 6, [9, 5]]

浅拷贝

import copylis = [1,3,6,[4,5]]lis2 = copy.copy(lis)print(lis)print(lis2)lis.append(7)print(lis)print(lis2)lis[3][0] = 9print(lis)print(lis2)
[1, 3, 6, [4, 5]][1, 3, 6, [4, 5]][1, 3, 6, [4, 5], 7][1, 3, 6, [4, 5]][1, 3, 6, [9, 5], 7][1, 3, 6, [9, 5]]

深拷贝

import copylis = [1,3,6,[4,5]]lis2 = copy.deepcopy(lis)print(lis)print(lis2)lis.append(7)print(lis)print(lis2)lis[3][0] = 9print(lis)print(lis2)
[1, 3, 6, [4, 5]][1, 3, 6, [4, 5]][1, 3, 6, [4, 5], 7][1, 3, 6, [4, 5]][1, 3, 6, [9, 5], 7][1, 3, 6, [4, 5]]

特殊的

import copyt1 = (1,2,3,4,5)print(id(t1))t2 = copy.deepcopy(t1)print(id(t2))
23752544897522375254489752
import copyt1 = (1,2,3,4,[1,2])print(id(t1))t2 = copy.deepcopy(t1)print(id(t2))
23752544901042375254276144
lis = [1,2,3]t1 = (1,2,lis)print(t1)lis.append(4)print(lis)print(t1)
(1, 2, [1, 2, 3])[1, 2, 3, 4](1, 2, [1, 2, 3, 4])

转载于:https://www.cnblogs.com/WilliamKong94/p/10842359.html

你可能感兴趣的文章
特蕾莎·梅政府挺过不信任动议 21日将交脱欧B计划
查看>>
美“龙”号货运飞船结束第16次补给任务 将返回地球
查看>>
人工智能会是发展中国家的下一个盖世英雄吗?
查看>>
从零单排学Redis【黄金】
查看>>
NG2.4.10升级NG4正式版[正式项目]:修正AOT打包报错的一些问题
查看>>
jQuery实现左侧分类菜单
查看>>
如何用一行代码, 让老板开除你?
查看>>
css实现多行文字截断
查看>>
VsCode读取项目文件的Eslint规则 保存时自动修复格式错误
查看>>
Facebook 之行,新的远方
查看>>
玩转iOS开发:iOS 11 新特性《高级拖放》
查看>>
活用 git apply 合入 patch 补丁
查看>>
悄悄掀起 WebAssembly 的神秘面纱
查看>>
OC多线程
查看>>
记一次对webpack打包后代码的失败探究
查看>>
论CTOR添加到11月BCH协议升级
查看>>
RxJava源码分析及版本对比(二)——2.x版本基本使用分析与对比1.x版本
查看>>
程序员该懂一点儿KPI
查看>>
Android 友盟社会化分享的集成与封装
查看>>
Java8新特性系列(流性能)
查看>>