集合是无序的,不重复的数据集合,它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的。以下是集合最重要的两点:

  1.去重,把一个列表变成集合,就自动去重了。

  2.关系测试,测试两组数据之前的交集、差集、并集等关系

1.集合的创建

# set集合用{}表示,有两种创建方法
set1 = set({1, 2, 'barry'}) # 使用set()方法创建集合
set2 = {1, 2, 'barry'} # 直接赋值创建集合
print(set1, set2)

2.集合的增

set1 = {'alex', 'wusir', 'ritian', 'egon', 'barry'}
set1.add('女神') # 通过add()方法给集合添加单个元素
print(set1) set1.update('A') # 通过update()方法给集合迭代添加多个元素
print(set1)
set1.update('老师')
print(set1)
set1.update([1, 2, 3])
print(set1)

3.集合的删

set1 = {'alex', 'wusir', 'ritian', 'egon', 'barry'}

set1.remove('alex')     # 删除指定的元素
print(set1) set1.pop() # 随机删除一个元素
print(set1) set1.clear() # 清空集合
print(set1) del set1 # 删除集合
print(set1)

4.集合的其他操作

  4.1 交集。(&  或者 intersection)

set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
print(set1 & set2) # 交集为 {4, 5}
print(set1.intersection(set2)) # & 和 .intersection()方法都可用来求交集

  4.2 并集。(| 或者 union)

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))
print(set1.union(set2))

  4.3 差集。(- 或者 difference)

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

  4.4反交集。 (^ 或者 symmetric_difference)

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

  4.5子集与超集

set1 = {1, 2, 3}
set2 = {1, 2, 3, 4, 5, 6} print(set1 < set2) # 结果为True 说明set1是set2的子集
print(set1.issubset(set2)) # 结果为True 说明set1是set2的子集 print(set2 > set1) # 结果为True 说明set2是set1的超集
print(set2.issuperset(set1)) # 结果为True 说明set2是set1的超集

5,frozenset不可变集合,让集合变成不可变类型。

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

day05 Python中的set集合的更多相关文章

  1. Python中字典和集合

    Python中字典和集合 映射类型: 表示一个任意对象的集合,且可以通过另一个几乎是任意键值的集合进行索引 与序列不同,映射是无序的,通过键进行索引 任何不可变对象都可用作字典的键,如字符串.数字.元 ...

  2. 认识python中的set集合及其用法

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

  3. Python中字典和集合的用法

    本人开始学习python 希望能够慢慢的记录下去 写下来只是为了害怕自己忘记. python中的字典和其他语言一样 也是key-value的形式  利用空间换时间 可以进行快速的查找 key 是唯一的 ...

  4. Python中的SET集合操作

    python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交), difference(差)和 ...

  5. Python中的数据结构 --- 集合(set)

    1.集合(set)里面的元素是不可以重复的    s={1,2,3,3,4,3,4}      ## 输出之后,没有重复的 2.定义一个空集合 s = set([]) print s,type(s)3 ...

  6. python中的set集合和深浅拷贝

    一.基础数据类型的补充 1.str中的join算法,将列表转换成字符串,并用'_'(或其他) li=['李嘉诚','马化腾','刘嘉玲','黄海峰',] s='_'.join(li) print(s) ...

  7. Python中字典,集合和元组函数总结

    ## 字典的所有方法- 内置方法 - 1 cmp(dict1, dict2) 比较两个字典元素. - 2 len(dict) 计算字典元素个数,即键的总数. - 3 str(dict) 输出字典可打印 ...

  8. 2018.8.3 python中的set集合及深浅拷贝

    一.字符串和列表的相互转化 之前写到想把xx类型的数据转化成yy类型的数据,直接yy(xx)就可以了,但是字符串和列表的转化比较特殊,相互之间的转化要通过join()和split()来实现. 例如: ...

  9. python中的set集合

    当使用爬虫URL保存时,一般会选择set来保存urls,set是集合,集合中的元素不能重复,其次还有交集,并集等集合的功能, 爬虫每次获取的网页中提取网页中的urls,并保存,这就需要利用urls = ...

随机推荐

  1. MySQL 大表数据定期归档

    数据库有一张表数据量很大,真正WEB项目只用到一个月内的数据,因此把一个月前的旧数据定期归档. 1 - 创建一个新表,表结构和索引与旧表一模一样 create table table_news lik ...

  2. EnumUtil 链表转换工具类

    package com.das.common.util; import org.springframework.util.CollectionUtils; import java.lang.refle ...

  3. python str byte 转换

    # bytes object b = b"example" # str object s = "example" # str to bytes bytes(s, ...

  4. linux下vi或vim操作Found a swap file by the name的原因及解决方法

    在linux下用vi或vim打开Test.java文件时 [root@localhost tmp]# vi Test.java出现了如下信息: E325: ATTENTION    Found a s ...

  5. kafka---->kafka stream的使用(一)

    kafka stream的简单使用,这里是官方文档上面的例子. kafka的简单使用 一.启动Kafka server huhx@gohuhx:~/server/kafka_2.11-1.1.0$ b ...

  6. jquery面试(2)

    DOM操作——怎样添加.移除.移动.复制.创建和查找节点? (1)创建新节点 createDocumentFragment() //创建一个DOM片段 createElement() //创建一个具体 ...

  7. Nest js 使用axios模块

    文档 let r = await this.http.get(`https://api.github.com/users/januwA`).toPromise().then(v => v.dat ...

  8. mybatis03--字段名和属性名不一致

    1.修改数据库中的字段 2.运行根据id查询所有的学生信息的测试方法会出现下面的异常 也就是说明 数据库中的字段没有个实体类中的属性名一致 3.修改StudentMapper.xml文件中的列名 4. ...

  9. Palindromic Matrix

    Palindromic Matrix time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  10. python学习之旅(三)

    Python基础知识(2):运算符 一.算术运算符 加 +,减 -,乘 *,除 /,幂 **,求余 %,取整 // 二.成员运算符 in,not in 判断一个字符是否在字符串中 name = &qu ...