1、删除特例

lis = [11,22,33,44,55]
for i in range(len(lis)):
print(i)
del lis[i]
print(lis)
#每删除链表中一个值链表就会前移一位

2、删除字典的值

dic = {'k1':'v1','k2':'v2','a3':'v3'}
dic1 = {}
l = []
for i in dic:
if 'k' in i:
l.append(i)
for i in l:
del dic[i]
print(dic)
#输出{'a3': 'v3'}

3、bool值的转换

0 ' '  [] () {} set() 为False

4、如果元祖里面只有一个元素且不加逗号那此元素是什么类型,就是什么类型。

tu1 = (1)
tu2 = (1,)
print(tu1,type(tu1))
#输出1 <class 'int'>
print(tu2,type(tu2))
#输出(1,) <class 'tuple'>
tu1 = ([1])
tu2 = ([1],)
print(tu1,type(tu1))
#输出[1] <class 'list'>
print(tu2,type(tu2))
#输出([1],) <class 'tuple'>

5、集合:可变的数据类型,他里面的元素必须是不可变的数据类型,无序,不重复。

#增

set1 = {'alex','wusir','ritian','egon','barry',}
set1.add('pzw')
print(set1)
#输出{'pzw', 'barry', 'alex', 'ritian', 'egon', 'wusir'}

不同于第一种

set1 = {'alex','wusir','ritian','egon','barry',}
set1.update('pzw')
print(set1)
#输出{'alex', 'z', 'w', 'ritian', 'barry', 'p', 'wusir', 'egon'}

#删

set1 = {'alex','wusir','ritian','egon','barry',}
set1.pop() # 随机删除
print(set1)
#输出{'ritian', 'wusir', 'alex', 'barry'}

有返回值删除

set1 = {'alex','wusir','ritian','egon','barry',}
print(set1.pop()) # 有返回值
print(set1)
#输出barry
# {'alex', 'wusir', 'egon', 'ritian'}

按元素删除

set1 = {'alex','wusir','ritian','egon','barry',}
set1.remove('alex') # 按元素删除
print(set1)
#输出{'barry', 'egon', 'wusir', 'ritian'}

清空集合

set1 = {'alex','wusir','ritian','egon','barry',}
set1.clear()
print(set1)
#输出set()

#查

set1 = {'alex','wusir','ritian','egon','barry',}
for i in set1:
print(i)

6、集合的交并集

交集

set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
set3 = set1 & set2
print(set3)
#输出{4, 5}
print(set1.intersection(set2))
#输出{4, 5}

并集

set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
print(set1 | set2)
#输出{1, 2, 3, 4, 5, 6, 7, 8}
print(set2.union(set1))
#输出{1, 2, 3, 4, 5, 6, 7, 8}

反交集

set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
print(set1 ^ set2)
#输出{1, 2, 3, 6, 7, 8}
print(set1.symmetric_difference(set2))
#输出{1, 2, 3, 6, 7, 8}

差集

set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
print(set1 - set2)
#输出{1, 2, 3}
print(set1.difference(set2))
#输出{1, 2, 3}

子集与超集

set1 = {1,2,3,}
set2 = {1,2,3,4,5,6}
print(set1 < set2)
print(set1.issubset(set2)) # 这两个相同,都是说明set1是set2子集。
print(set2 > set1)
print(set2.issuperset(set1)) # 这两个相同,都是说明set2是set1超集。

7、去重

li = [1,2,33,33,2,1,4,5,6,6]
set1 = set(li)
print(set1)
#输出{1, 2, 33, 4, 5, 6}
li = list(set1)
print(li)
#输出[1, 2, 33, 4, 5, 6]

特例

s = frozenset('barry')
print(s,type(s))
#输出frozenset({'r', 'b', 'y', 'a'}) <class 'frozenset'>

8、赋值运算

l1 = [1,2,3]
l2 = l1
l1.append('a')
print(l1,l2)
#输出[1, 2, 3, 'a'] [1, 2, 3, 'a']

#copy

l1 = [1,2,3]
l2 = l1.copy()
print(l1,l2)
#输出[1, 2, 3] [1, 2, 3]
l1 = [1,[1],2,3,4]
l2 = l1[:]
l1[1].append('a')
print(l1,l2)
#输出[1, [1, 'a'], 2, 3, 4] [1, [1, 'a'], 2, 3, 4]
li = ['alex','taibai','wusir','egon']
for i in li:
print(li.index(i),i)
#输出 0 alex
# 1 taibai
# 2 wusir
# 3 egon

python note 07 集合的更多相关文章

  1. Python函数07/有参装饰器/多个装饰器装饰一个函数

    Python函数07/有参装饰器/多个装饰器装饰一个函数 目录 Python函数07/有参装饰器/多个装饰器装饰一个函数 内容大纲 1.有参装饰器 2.多个装饰器装饰一个函数 3.今日总结 3.今日练 ...

  2. python爬虫工具集合

    python爬虫工具集合 大家一起来整理吧!强烈建议PR.这是初稿,总是有很多问题,而且考虑不全面,希望大家支持! 源文件 主要针对python3 常用库 urllib Urllib是python提供 ...

  3. Python序列结构--集合

    集合:元素之间不允许重复 集合属于Python无序可变序列,元素之间不允许重复 集合对象的创建与删除 直接将值赋值给变量即可创建一个集合 >>> a = {3,5}>>& ...

  4. python 中的集合set

    python中,集合(set)是一个无序排列,可哈希, 支持集合关系测试,不支持索引和切片操作,没有特定语法格式, 只能通过工厂函数创建.集合里不会出现两个相同的元素, 所以集合常用来对字符串或元组或 ...

  5. 【转】Python数据类型之“集合(Sets)与映射(Mapping)”

    [转]Python数据类型之“集合(Sets)与映射(Mapping)” 一.集合类型(Sets) 集合对象是不同的(不可重复)hashable对象的无序集合.常见用法包括:成员关系测试.移除序列中的 ...

  6. Python的set集合详解

    Python 还包含了一个数据类型 -- set (集合).集合是一个无序不重复元素的集.基本功能包括关系测试和消除重复元素.集合对象还支持 union(联合),intersection(交),dif ...

  7. python入门13 集合set

    set集合与数学中的集合同一个概念,是无序不重复元素组成的. #coding:utf-8 #/usr/bin/python """ 2018-11-10 dinghanh ...

  8. Python中的集合类型分类和集合类型操作符解析

    集合类型    数学上,把set称作由不同的元素组成的集合,集合(set)的成员通常被称作集合元素(set elements).    Python把这个概念引入到它的集合类型对象里.集合对象是一组无 ...

  9. python进阶07 MySQL

    python进阶07 MySQL 一.MySQL基本结构 1.认识MySQL #MySQL不是数据库,它是数据库管理软件 #MySQL如何组织数据 #如何进入MySQL数据库 #其他注意事项 #以表格 ...

随机推荐

  1. 如何避免提交页面,信息未填写完善 就出现注册成功提示 基于js

    基于bootstrip做好一个页面后,出现如下效果图 这个页面是未经过任何后端处理的页面,如果直接填写一个用户名 或者不填写任何东西都可以注册成功的,先来演示只输入一个用户名 就要可以注册成功的. 点 ...

  2. PythonStudy——赋值运算符 Assignment operator

    eg: num = 10 num += 1 # 等价于 num = num + 1 => 11 print(num) 特殊操作: 1.链式赋值 a = b = num print(a, b, n ...

  3. H3C交换机限制子网之间的相互访问

    acl number 3000     rule 1 permit ip source 10.0.5.0 0.0.0.255 destination 172.16.1.100 0   #允许10.0. ...

  4. LDAP学习总结

    一.简介: LDAP(Light Directory Access Portocol),它是基于X.500标准的轻量级目录访问协议.目录是一个为查询.浏览和搜索而优化的数据库,它成树状结构组织数据,类 ...

  5. Day 07 字符编码,文件操作

    今日内容 1.字符编码:人识别的语言与机器识别的语言转换的媒介 2.字符与字节:字符占多少字节,字符串转换 3.文件操作:操作硬盘的一块区域 字符编码 重点:什么是字符编码 人类能识别的字符等高级标识 ...

  6. Linux centos7. 配置安装Oracle

    oralcle 11g r2 配置一下前期的网络环境 一 修改linux核心配置 1.修改用户的SHELL限制vi /etc/security/limits.conf oracle soft npro ...

  7. centos7安装 owncloud注意事项

    要关于selinux 用来存放文件的目录权限要修改 chown -R apache:apache my.cnf里的binlog_format=mixed前面的注释去掉,不然报mysql错!

  8. 04-体验一下apache组织封装的BeanUtil工具包

    apache 自己为程序员们封装了一个专门用于处理的工具类,其功能有(数据类型会自动转成与JavaBean相关的) map转javabean javabean转map javabean对象复制 获取j ...

  9. 性能测试day07_性能瓶颈和分析

    其实如果之前都做的很到位的话,那么再加上APM工具(dynaTrace等),监控到非常细节,那么我们跑一个业务,我们就能完全清楚的知道每个请求的时间,也能知道请求所产生sql的时间,这样你自然而然都知 ...

  10. Twisted网络库编程实例

    于这一周看了python的第三方网络库Twisted,英文看的头比较大,想看英文的话点击这里.如果英文很烂,可以看中文,这里.总的来说我了解到的主要包括以下三个东东:Factory.protocol和 ...