一、定义变量是为了吹处理状态的变化,定义变量名是为了获取变量值。
字符串、数字、列表、元组、字典都是为了更好的描述变量的状态
1.可变不可变:变量名不变时,里面内容是否可以变化
# 可变:列表、字典。修改变量的值,ID不变
li = ['df','dfdf']
print(id(li)) #
li[0]='fkjg'
print(li)
print(id(li)) # 2076395786824 同一id地址,列表内内容可变化
# 不可变:字符串、数字、元组修改变量的值,ID变化
name = '马达'
print(id(name)) #
name = 'nkf'
print(id(name)) # 1951110131888 id不变,内容不可变
# 2.访问顺序:
# 可按照索引顺序访问:字符串、列表、元组(都是有序的)
# 映射方式访问;字典(一个key 对应一个value)
# 直接访问:数字 # 3:存放元素个数
# 容器类型(数据类型可存放多个值):列表、元组、字典
# 原子类型(只能存放一个值):数字、字符串
二.集合:定义集合可以用大括号{,,,} or 系统内置函数set,set里面的内容必须可迭代
# 由不同元素组成,
# 元素无序,
# 集合中元素必须是不可变类型-只能存放数字、字符串、元组
s = set('hello')
print(s) # {'l', 'h', 'o', 'e'}
s = set((1,'djf'))
print(s) # {1, 'djf'}

--add()添加

--clear()清空

--copy()复制

s.add('s')
s.add('')
s.add(3)
print(s) # {1, 2, 3, 4, 5, 6, 's', '3'} s.clear()
print(s) # set() s1=s.copy()

--pop()  # 集合无序,随机删除

--s.remove()  # 指定删除元素,当删除元素不存在时,会报错

--discard()  # 删除指定元素,元素不存在时也不报错

s = {'df',1,2,3,4,5}
s.pop() # 集合无序,随机删除
print(s) # {2, 3, 4, 5, 'df'} # s.remove() # 指定删除元素,当删除元素不存在时,会报错
s.remove('jflkd')
print(s) # KeyError: 'jflkd' s.discard('dfjk') # 删除指定元素,元素不存在时也不报错
print(s) # {2, 3, 4, 5, 'df'}

--intersection()求交集:我们都有

--union()求并集  :全部
--difference()求差集:我有你没有

--symmetric_difference()交叉补集 并集-交集 我有你没有的组合
--difference_update:等同于p_s=p_s-l_s
--isdisjoint() 如果两个集合没有交集则返回True,否则返回False
--issubset()判断是否为子集
--issuperset()判断是否为父集
--update()更新多个值,可迭代的对象都能传进去
# s1.add(1,2,3,4) #更新一个值
# s1.union(s2) #不更新
python_l=['lcg','szw','zjw','lcg']
linux_l=['lcg','szw','sb']
p_s=set(python_l)
l_s=set(linux_l) # # intersection()求交集:我们都有
print(p_s,l_s) # {'lcg', 'zjw', 'szw'} {'lcg', 'sb', 'szw'}
print(p_s.intersection(l_s)) # 'lcg', 'szw'}
print(p_s&l_s) # $求交集 {'lcg', 'szw'} # # union()求并集 :全部
print(p_s.union(l_s))
print(p_s|l_s) # |求并集 {'zjw', 'szw', 'lcg', 'sb'} # # difference()求差集:我有你没有
print('差集',p_s-l_s) # -求差集: 差集 {'zjw'}
print(p_s.difference(l_s))
print('差集',l_s-p_s) # 差集 {'sb'}
print(l_s.difference(p_s)) # symmetric_difference()交叉补集 并集-交集 我有你没有的组合
print('交叉补集',p_s.symmetric_difference(l_s)) # 交叉补集 {'sb', 'zjw'}
print('交叉补集',p_s^l_s) # ^交叉补集符号 python_l=['lcg','szw','zjw','lcg']
linux_l=['lcg','szw','sb']
p_s=set(python_l)
l_s=set(linux_l)
print(p_s,l_s) # {'lcg', 'zjw', 'szw'} {'lcg', 'sb', 'szw'}
# print('差集',p_s-l_s)
# difference_update:等同于p_s=p_s-l_s
p_s.difference_update(l_s) # {'zjw'}
print(p_s) # isdisjoint() 如果两个集合没有交集则返回True,否则返回False
s1={1,2}
s2={2,3,5}
print(s1.isdisjoint(s2)) # False s1={1,2}
s2={1,2,3}
print(s1.issubset(s2))#s1 是s2 的子集 True
print(s2.issubset(s1))#False print(s2.issuperset(s1))#s1 是s2 的父集 True s1={1,2}
s2={1,2,3,4}
s1.update(s2) #更新多个值,可迭代的对象都能传进去
print(s1) # {1, 2, 3, 4} # s1.add(1,2,3,4) #更新一个值
# s1.union(s2) #不更新
s=frozenset('hello') 
# 集合是可变的,frozenset设置不可变集合
print(s) # frozenset({'o', 'e', 'h', 'l'})  
names=['alex','alex','wupeiqi']
names=list(set(names)) print(names) # 'alex', 'wupeiqi'] 通过集合删除列表中重复值
 


 

day7-集合的更多相关文章

  1. [ python ] 学习目录大纲

    简易博客[html+css]练习 MySQL 练习题及答案 MySQL视图.触发器.函数.存储过程 MySQL 操作总结 Day41 - 异步IO.协程 Day39/40 - 线程的操作 Day36/ ...

  2. python 全栈开发,Day7(元组转换,列表以及字典的坑,集合,关系测试,深浅copy,编码补充)

    一.元组转换 数字 tu = (1) tu1 = (1,) print(tu,type(tu)) print(tu1,type(tu1)) 执行输出: 1 <class 'int'>(1, ...

  3. Python基础学习Day7 基础数据类型的扩展 集合 深浅copy

    一.基础数据类型的扩展 1.1GBK ---> UTF - 8 # str --->bytes s1 = '太白' # 字符串是unicode编码 b1 = s1.encode('gbk' ...

  4. python day- 7 进本数据类型的先关知识点 set集合 深浅拷贝

    一.基本数据类型相关知识 1.str.    join()函数 关于字符串 a = "我爱北京" b = a.join("真的")            将&q ...

  5. day7 基础数据类型&集合&深浅拷贝

    基础数据类型汇总: #!/usr/bin/env python # -*- coding:utf-8 -*- ''' str int ''' # str s = ' a' print(s.isspac ...

  6. Python之路,Day7 - Python基础7 面向对象

    本节内容:   面向对象编程介绍 为什么要用面向对象进行开发? 面向对象的特性:封装.继承.多态 类.方法.     引子 你现在是一家游戏公司的开发人员,现在需要你开发一款叫做<人狗大战> ...

  7. Alpha冲刺集合

    Alpha冲刺集合 Day1 http://www.cnblogs.com/bugLoser/p/7901016.html Day2 http://www.cnblogs.com/bugLoser/p ...

  8. Alpha阶段敏捷冲刺日志的集合贴

    敏捷冲刺日志的集合贴 Day1(4.17):http://www.cnblogs.com/software-teamwork/p/8861426.html Day2(4.20):http://www. ...

  9. 10.23 正睿停课训练 Day7

    目录 2018.10.23 正睿停课训练 Day7 A 矩形(组合) B 翻转(思路) C 求和(思路 三元环计数) 考试代码 B1 B2 C 2018.10.23 正睿停课训练 Day7 期望得分: ...

  10. day 7 -10 集合,文本、文件操作,函数

    day7 一.回顾 1.列表和字典在循环里边尽量不要删除元素,很麻烦 2.元组:如果元组里边只有一个逗号,且不加逗号,次元素是什么类型,就是什么类型. 二.集合 ''' 集合:可变的数据类型,它里边的 ...

随机推荐

  1. go 学习笔记之解读什么是defer延迟函数

    Go 语言中有个 defer 关键字,常用于实现延迟函数来保证关键代码的最终执行,常言道: "未雨绸缪方可有备无患". 延迟函数就是这么一种机制,无论程序是正常返回还是异常报错,只 ...

  2. 【C语言笔记】#define与typedef的区别

    1.#define define是预处理指令,在编译时不进行任何检查,只进行简单的替换 宏定义的一般形式为: #define 宏名 字符串 这里所说的字符串是一般意义上的字符序列,不要和C语言中的字符 ...

  3. Java中的接口(什么是接口,接口的好处,具体的使用)

    1.什么是接口? 官方概述: 在java语言中,接口不是类,而是对类的一组需求描述,这些类要遵从接口描述的统一格式进行定义. 这种技术主要用来描述类具有什么功能,而并不给出每个类的具体实现. Bala ...

  4. Web渗透之mssql LOG备份getshell

    log备份的总结 当SQL注入是得到DB权限时候,接下来可以做的工作很多,象找管理员密码,后台管理这些都可以帮助你拿到WEBSHELL,但是这篇文章讲的是log备份,LOG备份出来的小马的体积小,而且 ...

  5. XSS Payload深入分析整理

    几种加载XSS Payload的不常见标签 众所周知,一种调用JavaScript的方法就是在元素类型上使用事件处理器(Event Handler),通常的一种方法类似: <img src=x ...

  6. 常用windows命令

    目录 本教程概述 用到的工具 标签 简介 1.cmd的一些规则 2.cd切换目录命令 3.dir显示目录命令 4.type显示文本内容 5.del 删除文件 6.查看IP地址 7.net 命令 8.n ...

  7. vc++中字符串的免杀

    一:格式字符: http://baike.baidu.com/view/2194593.htm d:以十进制形式输出带符号整数(正数不输出符号)o:以八进制形式输出无符号整数(不输出前缀o)x:以十六 ...

  8. phpstorm 新加入项目的文件--全局搜索不到 ctrl + shift + R

    通过文件名查找文件 ,能搜到其他的现有文件,只是新加入的文件,无法出现在搜索到的结果中 . 总不可能在搜索的关键词一直拼写错误吧 , 那能想到的只有缓存出问题了. 新加入的文件,新加入的文件.... ...

  9. [网络流 24 题] luoguP4016 负载平衡问题

    [返回网络流 24 题索引] 题目描述 有成环状的 nnn 堆纸牌,现将一张纸牌移动到其邻堆称为一次操作.求使得所有堆纸牌数相等的最少移动次数. Solution 4016\text{Solution ...

  10. JedisCluster与keys/scan查找

    最近买了几个专栏,关于算法.JVM.redis,学不过来.主要是身体也不太好,视物光斑转头疼的问题出现越来越频繁.再加上早上起来嗓子痒打喷嚏.很烦. 稍记录一下redis集群的问题: 1.scan在集 ...