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

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

集合的内置方法

set(集合)

集合可以理解成一个集合体。

pythons = ['jason', 'nick', 'tank', 'sean']linuxs = ['nick', 'egon', 'kevin']py_lin_list =[]for stu in pythons:    if stu in linuxs:       py_lin_list.append(stu)print(f"pythons and linuxs:{py_lin_list}")运行结果为:pythons and linuxs:['nick']

1、用途:用于关系运算的集合体,由于集合内的元素无序且集合元素不可重复,因此集合可以去重,但是去重后的集合会打乱原来元素的顺序。

s = {1, 2, 1, 'a'}  # s = set({1,2,'a'})   #集合将重复的元素默认进行了去重操作print(f"s: {s}")运行结果为:s: {'a', 1, 2}
s = {1, 2, 1, 'a', 'c'}for i in s:    print(i)    运行结果为:12ac
s = set('hello')print(f"s: {s}")运行结果为:s: {'h', 'l', 'e', 'o'}

2、定义:{}内用逗号分隔开多个元素,每个元素必须是不可变类型,不可哈希就是可变,可哈希就是不可变

3、常用操作+内置方法:常用操作和内置方法分为优先掌握(今天必须得记住)、需要掌握(一周内记住)两个部分。

1. 长度len

2. 成员运算in和not in

3. |并集、union
4. &交集、intersection
5. -差集、difference
6. ^对称差集、symmetric_difference
7. ==
8. 父集:>、>= 、issuperset
9. 子集:<、<= 、issubset

1.长度len

s = {1, 2, 'a'}print(f'len(s):{len(s)}')运行结果:len(s):3

2.成员运算in和not in

s = {1, 2, 'a'}print(f'1 not in s:{1 not in s}')print(f"'b' in s:{'b' in s}")运行结果为:1 not in s:False'b' in s:False

3.|并集、union

pythoners = {'jason', 'nick', 'tank', 'sean'}linuxers = {'nick', 'egon', 'kevin'}wer = pythoners|linuxersprint(f'wer;{wer}')运行结果为:wer;{'sean', 'tank', 'kevin', 'egon', 'nick', 'jason'}

4.&交集、intersection

pythoners = {'jason', 'nick', 'tank', 'sean'}linuxers = {'nick', 'egon', 'kevin'}wer = pythoners&linuxersprint(f'wer;{wer}')运行结果:wer;{'nick'}

5.-差集、difference(移除A集合中与B集合相同的元素)

pythoners = {'jason', 'nick', 'tank', 'sean'}linuxers = {'nick', 'egon', 'kevin'}wer = pythoners-linuxersprint(f'wer;{wer}')运行结果为:wer;{'jason', 'tank', 'sean'}

6.^对称差集、symmetric_difference(删除A集合与B集合相同的元素,并组成新的集合)

pythoners = {'jason', 'nick', 'tank', 'sean'}linuxers = {'nick', 'egon', 'kevin'}wer = pythoners^linuxersprint(f'wer;{wer}')运行结果为:wer;{'jason', 'tank', 'sean', 'egon', 'kevin'}

7.==(两边集合是否相等)

pythoners = {'jason', 'nick', 'tank', 'sean'}linuxers = {'nick', 'egon', 'kevin'}javers = {'nick', 'egon', 'kevin'}print(f'pythoners==linuxers;{pythoners==linuxers}')print(f"javers==linuxers: {javers==linuxers}")运行结果为:pythoners==linuxers;Falsejavers==linuxers: True

8.父集:>、>= 、issuperset(判断A集合是否包含或等于B集合,则称A集合为B集合的父集)

pythoners = {'jason', 'nick', 'tank', 'sean'}linuxers = {'nick', 'egon', 'kevin'}javaers = {'jason', 'nick'}print(f"pythoners>linuxers: {pythoners>linuxers}")print(f"pythoners>=linuxers: {pythoners>=linuxers}")print(f"pythoners>=javaers: {pythoners>=javaers}")print(f"pythoners.issuperset(javaers): {pythoners.issuperset(javaers)}")运行结果为:pythoners>linuxers: Falsepythoners>=linuxers: Falsepythoners>=javaers: Truepythoners.issuperset(javaers): True

9.子集:<、<=(判断A集合是否属于或等于B集合,则称A集合为B集合的子集)

pythoners = {'jason', 'nick', 'tank', 'sean'}linuxers = {'nick', 'egon', 'kevin'}javaers = {'jason', 'nick'}print(f"pythoners

需要掌握(****)

  1. add
  2. remove
  3. difference_update
  4. discard
  5. isdisjoint

1.add(添加元素)

s = {1, 2, 'a'}s.add(8)     # 添加元素print(s)运行结果为;{8, 1, 2, 'a'}

2.remove(移除元素)

s = {1, 2, 'a'}s.add(8)     # 添加元素print(s)s.remove('a')  # 移除元素,元素不存在则报错print(s){8, 1, 2, 'a'}{8, 1, 2}

3.difference_update(移除A集合中与B集合相同的元素)

pythoners = {'jason', 'nick', 'tank', 'sean'}linuxers = {'nick', 'egon', 'kevin'}pythoners.difference_update(linuxers)  #移除A集合中与B集合相同的元素print(pythoners){'tank', 'jason', 'sean'}

4.isdisjoint (判断两个集合没有相同的元素)

pythoners = {'jason', 'nick', 'tank', 'sean'}linuxers = {'nick', 'egon', 'kevin'}print(pythoners.isdisjoint(linuxers))   集合没有相同的元素返回True,有相同的元素返回FalseFalse

5.discard(移除指定的元素)

pythoners = {'jason', 'nick', 'tank', 'sean'}pythoners.discard('nick')    #移除指定的元素,元素不存在,返回Noneprint(pythoners){'sean', 'jason', 'tank'}

4、存一个值or多个值:多个值,且值为不可变类型。

5、有序or无序:无序,无索引

6、可变or不可变:可变数据类型(变量值改变,ID内存地址不变)

s = {1, 2, 'a'}print(f"第一个id {id(s)}")s.add(6)print(f"第二个id {id(s)}")

转载于:https://www.cnblogs.com/zuihoudebieli/p/10935014.html

你可能感兴趣的文章
oracle for loop 代替cursor (转载)
查看>>
Linked List Cycle II
查看>>
工作踩坑记录:JavaScript跳转被缓存
查看>>
个人作业
查看>>
下拉刷新
查看>>
display:inline-block 和float:left 的区别
查看>>
java 图片与文字生成PDF
查看>>
通道(Channel)的原理获取
查看>>
我所知道的window.location
查看>>
ajax 请求发出了,数据更改了,但是没进入success 函数 把success 换成 complete...
查看>>
web前端开发知识点较高质量的网站
查看>>
2018寒假作业_3(电梯版本二)
查看>>
sql复杂查询
查看>>
修改mysql5.7的错误日志级别
查看>>
UVA - 839 Not so Mobile
查看>>
Python考试_第一次
查看>>
[Jquery 插件]活动倒计时,可同步服务器时间,倒计时格式随意设置
查看>>
【財務会計】償却 とは
查看>>
es5和es6对象导出与导入
查看>>
关于timestamp的自动更新
查看>>