博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python3学习笔记(八):集合
阅读量:5748 次
发布时间:2019-06-18

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

集合(set)是一种可变的无序的不重复的数据类型

要创建集合,需要将所有项(元素)放在花括号({})内,以逗号(,)分隔。

>>> s = {
'p','y','t','h','o','n'}

集合中的元素必须是不可变的数据类型(数字,元组,字符串),不能是可变的数据类型(列表,字典,set集合)

>>> s = {1,2,3}           >>> s = {1,'python',(1,2,3)}      # 元素可以为数字,字符串,元组    >>> s = {1,2,[3,4]}               # 元素不能为列表Traceback (most recent call last):  File "
", line 1, in
s = {1,2,[3,4]}TypeError: unhashable type: 'list'>>> s = {1,2,{
'a':3,'b':4}} # 元素不能为字典Traceback (most recent call last): File "
", line 1, in
s = {1,2,{
'a':3,'b':4}}TypeError: unhashable type: 'dict'

set()函数

用于把其他序列(字符串,列表,元组,字典)创建为集合

>>> set('python')        # 把字符串转变为集合   {
'o', 'h', 'p', 'n', 't', 'y'}>>> set([1,2,3,4,5]) # 把列表转变为集合 {1, 2, 3, 4, 5}>>> set((1,2,3,4,5)) # 把元组转变为集合 {1, 2, 3, 4, 5}>>> set({
'a':3,'b':4}) # 把字典键值转变为集合 {
'b', 'a'}>>> set() # 创建一个空集合set()

集合特性

  • 无序性:元素之间是无序的,所以不支持索引。
  • 互异性:集合中每个元素都是不同的。
  • 确定性:给定一个集合,任给一个元素,该元素或者属于或者不属于该集合,二者必居其一,不允许有模棱两可的情况出现。
# 无序性>>> s = set('python')           >>> s           {
'o', 'h', 'p', 'n', 't', 'y'}# 不支持索引>>> s[2] Traceback (most recent call last): File "
", line 1, in
s[2]TypeError: 'set' object does not support indexing# 互异性>>> s = set('Hello') >>> s {
'e', 'H', 'o', 'l'}# 确定性>>> 'l' in s True>>> 'p' in s False

集合运算


 

集合之间可以进行并集、交集、差集运算

1、并集

一组集合的并集是这些集合的所有元素构成的集合,而不包含其他元素。

使用操作符 | 执行并集操作,同样地,也可使用方法 union() 完成。

>>> a = set('abcd')           >>> b = set('cdef')           >>> a | b           {
'd', 'e', 'b', 'c', 'f', 'a'}>>> a.union(b) {
'd', 'e', 'b', 'c', 'f', 'a'}

2、交集

两个集合 A 和 B 的交集是含有所有既属于 A 又属于 B 的元素,而没有其他元素的集合。

使用 & 操作符执行交集操作,同样地,也可使用方法 intersection() 完成

>>> a = set('abcd')           >>> b = set('cdef')>>> a & b           {
'd', 'c'}>>> a.intersection(b) {
'd', 'c'}

3、差集

A 与 B 的差集是所有属于 A 且不属于 B 的元素构成的集合

使用操作符 - 执行差集操作,同样地,也可使用方法 difference() 完成。

>>> a = set('abcd')           >>> b = set('cdef')>>> a - b           {
'a', 'b'}>>> a.difference(b) {
'a', 'b'}

 

转载于:https://www.cnblogs.com/eastonliu/p/9097496.html

你可能感兴趣的文章
nova-quota 及cinder-quota修改
查看>>
在Ext的JsonStore的load方法中使用回调callback(转)
查看>>
获得PMP证书的这一年
查看>>
php5编译安装常见错误和解决办法集锦
查看>>
Linux远程访问及控制
查看>>
Oracle中如何删除某个用户下的所有数据呢
查看>>
MongoDB实战系列之五:mongodb的分片配置
查看>>
Unable to determine local host from URL REPOSITORY_URL=http://
查看>>
分析Java集合框架及数组的排序
查看>>
Java Tomcat SSL 服务端/客户端双向认证(二)
查看>>
java基础(1)
查看>>
ORACLE配置,修改tnsnames.ora文件实例
查看>>
用户无法在输入框中键入数字
查看>>
Workstation服务无法启动导致无法访问文件服务器
查看>>
Gradle:Basic Project
查看>>
.Net组件程序设计之远程调用(二)
查看>>
ant中文教程
查看>>
Linux常用命令(一)
查看>>
安装和使用 Elasticsearch
查看>>
WSUS数据库远端存储条件下切换域及数据库迁移
查看>>