python学习[第十二篇] 数据类型之 集合

python学习[第十二篇] 数据类型之 集合

集合概念

python中集合是一组无序排列的哈希值。集合分为两种可变集合(set)和不可变集合(frozenset)

对可变集合可以修改和删除元素,对于不可变集合不允许。可变集合是不可以哈希的,因此既不能用作字典的键,也不能做其他集合的元素。

集合的增删改查

集合的创建于赋值

集合与列表([]) 和字典({})不同,集合没有特别的语法格式。列表和字典可以通过他们自己的工厂方法创建,这也是集合的唯一的创建方式。set()和frozenset()

#创建可变集合
>>> s=set(‘fruittruth‘)
>>> s
set([‘f‘, ‘i‘, ‘h‘, ‘r‘, ‘u‘, ‘t‘])
#创建不可变集合
>>> t=frozenset(‘fruittruth‘)
>>> t
frozenset([‘f‘, ‘i‘, ‘h‘, ‘r‘, ‘u‘, ‘t‘])
>>> type(s)
<type ‘set‘>
>>> type(t)
<type ‘frozenset‘>

访问集合

#判断对象是否在集合中
>>> ‘t‘ in s
True

#判断对象是否不在集合中
>>> ‘k‘ not in s
True

#变量集合的元素
>>> for i in s:
...     print i
...
f
i
h
r
u
t

更新集合

使用集合的内建方法和操作符添加和删除集合的元素

#16b
#25b
#31
#42
#53b
#64
#75b
##16b

#集合添加元素
>>> s.add(‘k‘)
>>> s
set([‘f‘, ‘i‘, ‘h‘, ‘k‘, ‘r‘, ‘u‘, ‘t‘])
#集合修改元素
>>> s.update(‘xyz‘)
>>> s
set([‘f‘, ‘i‘, ‘h‘, ‘k‘, ‘r‘, ‘u‘, ‘t‘, ‘y‘, ‘x‘, ‘z‘])
#集合删除元素 remove方法
>>> s.remove(‘t‘)
>>> s
set([‘f‘, ‘i‘, ‘h‘, ‘k‘, ‘r‘, ‘u‘, ‘y‘, ‘x‘, ‘z‘])
#通过 -= 删除集合 要删除的只能是集合,可以是可变集合和不可变集合
s -= set(‘xxx‘)
>>> s -= set(‘xyz‘)
>>> s
set([‘f‘, ‘i‘, ‘h‘, ‘k‘, ‘r‘, ‘u‘])
>>> s -= t
>>> s
set([‘k‘])

>>> s -= ‘xyz‘
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for -=: ‘set‘ and ‘str‘

删除集合

del s

集合类型操作符

标准类型操作符

成员关系 in ,not in

>>> s=set(‘pzq‘)
>>> s
set([‘q‘, ‘p‘, ‘z‘])
>>>
>>> ‘k‘ in s
False

集合等价及不等价

>>> s=set(‘pzq‘)
>>> s
set([‘q‘, ‘p‘, ‘z‘])
>>> t=frozenset(‘mon‘)
>>> t
frozenset([‘m‘, ‘o‘, ‘n‘])
>>> s == t
False
>>> s != t
True
>>> u=frozenset(s)
>>> u
frozenset([‘q‘, ‘p‘, ‘z‘])
>>> s == u
True
>>> set(‘posh‘) == set(‘shop‘)
True

子集及超集

集合子集及超集 :小于符号(<,<=)用来表示子集 大于符号(>,>=)用来表示超集.

原文地址:https://www.cnblogs.com/ryanpan/p/9333515.html

时间: 2024-11-10 09:20:49

python学习[第十二篇] 数据类型之 集合的相关文章

python 学习笔记十二 CSS基础(进阶篇)

1.CSS 简介 CSS 指层叠样式表 (Cascading Style Sheets) 样式定义如何显示 HTML 元素 样式通常存储在样式表中 把样式添加到 HTML 4.0 中,是为了解决内容与表现分离的问题 外部样式表可以极大提高工作效率 外部样式表通常存储在 CSS 文件中 多个样式定义可层叠为一 css存在方式: 元素内联 页面嵌入 外部引入 语法:style = 'key1:value1;key2:value2;' 1.元素内联(在标签中使用css) <!--在标签使用--> &

python 学习笔记十二之 html基础(进阶篇)

HTML 超级文本标记语言是标准通用标记语言下的一个应用,也是一种规范,一种标准,它通过标记符号来标记要显示的网页中的各个部分.网页文件本身 是一种文本文件,通过在文本文件中添加标记符, 可以告诉浏览器如何显示其中的内容(如:文字如何处理,画面如何安排,图片如何显示等).浏览器按顺序阅读 网页文件,然后根据标记符解释和显示其标记的内容,对书写出错的标记将不指出其错误, 且不停止其解释执行过程,编制者只能通过显示效果来分析出错原因和出 错部位.但需要注意的是,对于不同的浏览器,对同一标记符可能会有

Python学习(十二)—— 常见模块

常见内置模块 time模块 时间戳(单位是秒,代表由1970年元旦凌晨至今过去的时间),常用于计算 .time(): 1 import time 2 #时间戳,单位是s 3 print(time.time()) 4 # 1583246063.46606 结构化时间 (显示当地当前的精确时间 年月日...).localtime() 1 print(time.localtime()) 2 # time.struct_time(tm_year=2020, tm_mon=3, tm_mday=3, tm

python学习第十二课

memcache 介绍 Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度.Memcached基于一个存储键/值对的hashmap.其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信. emcached缺乏认证以及安全管制,这代表应该将memcached服务器放置在防火墙后. 由于Redis只使用单核,而

python 学习第十二课

memcache 介绍 Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度.Memcached基于一个存储键/值对的hashmap.其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信. emcached缺乏认证以及安全管制,这代表应该将memcached服务器放置在防火墙后. 由于Redis只使用单核,而

Python 学习 第十六篇:networkx

networkx是Python的一个包,用于构建和操作复杂的图结构,提供分析图的算法.图是由顶点.边和可选的属性构成的数据结构,顶点表示数据,边是由两个顶点唯一确定的,表示两个顶点之间的关系.顶点和边也可以拥有更多的属性,以存储更多的信息. 对于networkx创建的无向图,允许一条边的两个顶点是相同的,即允许出现自循环,但是不允许两个顶点之间存在多条边,即出现平行边. 边和顶点都可以有自定义的属性,属性称作边和顶点的数据,每一个属性都是一个Key:Value对. 一,创建图 在创建图之前,需要

python基础-第十二篇-12.1jQuery基础与实例

一.查找元素 1.选择器 基本选择器 $("*") $("#id") $(".class") $("element") $(".class,p,div") 层级选择器 $(".outer div")  后代 $(".outer>div")  子代 $(".outer+div") .outer后面的兄弟div(后面一个) $(".ou

python学习笔记(十二) - 常用内建模块

一.collections 1. namedtuple namedtuple是一个函数,它用来创建一个自定义的tuple对象,并且规定了tuple元素的个数,并可以用属性而不是索引来引用tuple的某个元素. from collections import namedtuple Point = namedtuple('Point', ['x', 'y']) p = Point(1, 2) print p.x print p.y 2.deque deque是为了实现高效插入和高效删除操作的双向列表

python学习笔记十二:类的定义

demo #!/usr/bin/python class Person: name = 'jim' age = 25 def say(self): print 'My name is ' + self.name + ', and age is ' + str(self.age) p = Person() p.say() print p.name