python学习第三周总结

一、Python中的set集合

1、set概念

  • set是可变的、无序的、不重复的元素集合。set的元素及元素里面的元素不能出现不可哈希类型。(即set的元素要求必须可以hash)
  • 常用的不可hash类型有list、set、bytearray
  • set的元素不可索引,但可以迭代

2、set定义

  • 例如: s1 = set()
  • 例如: s2 = set(range(5))
  • 例如: s3 = {‘a’,2,2,3,‘abc’} 等价于set = {‘a’,2,3,‘abc’}。set里面的元素不能重复。

3、set常用操作

  • add(elem) 返回值None #注意只能一次增加一个元素,如果元素存在,则不会添加
  • update(*others) #合并其他元素到set集合中来,others必须是可迭代对象。返回值None 就地修改
  • remove(elem) 从set中移除一个元素,元素不存在,抛出keyError异常
  • deiscard(elem)从set中移除一个元素,元素不存在什么都不做。
  • pop()—>item 随机的从集合中移除一个元素,并返回移除的元素。空集合调用返回keyError异常
  • clear() 移除所有元素
  • set是集合类型,元素唯一,不可修。所谓修改就是“把当前元素改成一个完全不同的元素,就是删除加入一个新元素”
  • set集合是非线性结构,无法索引

4、集合

  • 全集:(并集U、union的意思)所有元素的集合。
  • 子集:(subset和超子集superset)一个集合A所有元素都在另一个集合B内,A是B的子集,B是A的超集
  • 并集:多个集合合并的结果
  • 交集:多个集合的公共部分
  • 差集:集合中除去和其他集合公共部分
  • 真子集和真超集:A是B的子集,且A不等于B,A就是B的真子集,B是A的真超集

5、集合运算符

  • 并集运算符:|

    • 【|】 并集运算符(用union(*others)也可以)(会返回一个新的集合)
    • 【|=】 等同于update方法。多个集合和并,就地修改
    • 并集:将两个集合A和B的所有元素合并到一起
  • 交集运算符: &
    • 【&】等同于intersection 返回多个集合的交集。(会返回新的集合)
    • 【&=】等同于intersection_update获取和多个集合的交集,并就地修改。
    • 交集:集合A和B,由属于B的元素组成的集合
  • 差集运算符: -
    • 【-】等同difference(*others) 返回和多个集合的差集,会返回一个新的集合
    • 【-=】等同difference_update(*others) 获取和多个集合的差集并就地修改
    • 差集:集合A和B,由所有属A且不属于B的元素组成的集合
  • 对称差集: ^
    • 【^】等同于symmetric_differece(other)返回一个新的集合(和另一个集合的差集)

二、Python中的dict字典

1、dict字典概念

  • 字典是一个非线性结构,是key-value组成的键值对的数据集合。
  • 字典的特点:可变的、无序的、key不重复。

2、dict字典的定义

  • 【{}或者dict()】可以定义一个空字典

  • 【dict(**kwargs)】可以使用name=value键值对,初始化一个字典

  • 【dict(iterable,**kwarg)】使用可迭代对象和name = value度构造字典、不过可迭代对象的元素必须是一个二元结构

  • 【dict(mapping,**kwarg)】使用一个字典构建另一个字典

  • {}直接定义:例如:e = {“a”:10,“b”:20,“c”:30}
  • fromkeys(iterable,value) 【类方法】 #根据建集合初始化一个字典
  1. iterable :为可迭代的键值集合
  2. value:为默认所有建对应的默认值。(可以不写,如果没有默认为None)

3、元素访问

  • 【d[key]】 返回可用对应的值value,如果可以不存在会抛出keyError异常
  • 【get(key[,default])】 返回key对应的值value,如果key不存在就返回缺省值default,缺失值默认为None
  • 【setdefault(key[,default])】返回key对应的值value,如果key不存在,添加kv对,value设置为default,并返回default,如果default没有设置,则返回None
  • 【keys()】获取字典中所有key的集合
  • 【values()】或者字典中所有值values的集合
  • 【items()】获取字典中所有键值对组成的集合

4、dict字典的常用操作

(1)新增和修改

  • 【d[key] = value】将key对象的值修改为value,如果key不存在就添加新的key对应value
  • 【update([other])—>None】 使用一个字典里面的数据对本字典的更新,如果key不存在就添加,key存在就覆盖已经存在的key对应的值。 就地修改,无返回值

(2)删除

  • 【pop(key[,default])】 将key对应的值删除,并返回key对应的值。如果key不存在就返回缺省值defalut。如果未设置default,并且key不存在会抛出异常keyError
  • 【popitem()】移除并返回任意的键值对,字典为empty空时会抛出异常KeyError
  • 【clear()】清空字典
  • 【del d[key]】 删除指定key的键值对

(3)遍历

  • list(d.keys()) 根据字典的建集合或对应的list集合
  1. 注意:【for i in a.keys() 】等价于【for i in a】或者直接使用如下方法直接遍历出元素和元组
    【for i,k in a.items()】

原文地址:https://www.cnblogs.com/fjjj/p/12626529.html

时间: 2024-07-29 13:00:03

python学习第三周总结的相关文章

python学习第三周(下 函数)

本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值  嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8.内置函数 温故知新 1. 集合 主要作用: 去重 关系测试, 交集\差集\并集\反向(对称)差集 2. 元组 只读列表,只有count, index 2 个方法 作用:如果一些数据不想被人修改, 可以存成元组,比如身份证列表 3. 字典 key-value对 特性: 无顺序 去重 查询速度快,比列表快多了 比list占用内存多 为什么会查询速度会快呢?

linux学习第三周总结

linux学习第三周总结 学习linux的第三周,也是惊喜最多的一周,让我看到学linux并不是很枯燥,相反非常有趣,可玩性很多,但越深入越觉得可学习的地方有很多,也有非常多的不足,所以革命尚未成功,同志更需努力 同样来简单终结一下本周的重点,内容比较多,说要简单提一下,不做详解 一.shell脚本编程基础 内容:1. 编程基础 2. 脚本基本格式3. 变量4.运算5.条件测试6.条件判断if 7.条件判断case 8.配置用户环境 shell脚本:包含一些命令或声明,并符合一定格式的文本文件

OpenCV for Python 学习笔记 三

给源图像增加边界 cv2.copyMakeBorder(src,top, bottom, left, right ,borderType,value) src:源图像 top,bottem,left,right: 分别表示四个方向上边界的长度 borderType: 边界的类型 有以下几种: BORDER_REFLICATE # 直接用边界的颜色填充, aaaaaa | abcdefg | gggg BORDER_REFLECT # 倒映,abcdefg | gfedcbamn | nmabcd

Python学习第三天--数据类型

数据类型: int()  整型 float()浮点型 e记法   (有点像数学中的科学计数法) 知识点概括: 字符相加,结果为和 >>> 520 + 5201040 2.字符串相加,结果为"拼接" >>> '520'+'1314''5201314' 3.逻辑运算,python认为True=1,False=0,(True和False第一个字母必须为大写) >>> True + True 2 >>> True - Tr

python 学习笔记 三 字典

字典 Python的高效的key/value哈希表结构叫做"dict", dict的内容可以写成一系列的key:value对并放入{ }中, 相当于: dict = {key1:value1, key2:value2, ...}, 一个空的字典就是俩个大括号{ }. 下面是从一个空字典创建字典以及一些关键点: 数字, 字符串和元组可以作为字典的key, value可以是任何类型(包括字典). ## Can build up a dict by starting with the the

Python学习(三):入门篇:Python中怎么编写类

Python中怎么编写类 Last Edit 2013/5/2 先看一个例子: #person.py class person: """class to representaion a person""" def __init__(self,name,age): self.name=name if 0<age<=150: self.age=age else: print 'age is no valid!' def display(s

Python学习(三) 八大排序算法的实现(下)

本文Python实现了插入排序.基数排序.希尔排序.冒泡排序.高速排序.直接选择排序.堆排序.归并排序的后面四种. 上篇:Python学习(三) 八大排序算法的实现(上) 1.高速排序 描写叙述 通过一趟排序将要排序的数据切割成独立的两部分,当中一部分的全部数据都比另外一部分的全部数据都要小,然后再按此方法对这两部分数据分别进行高速排序,整个排序过程能够递归进行,以此达到整个数据变成有序序列. 1.先从数列中取出一个数作为基准数. 2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全

python学习笔记三---segmaphore信号量学习

# *-* coding=gb2312 *-* ''' 信号量semaphore 是一个变量,控制着对公共资源或者临界区的访问.信号量维护着一个计数器,指定可同时访问资源或者进入临界区的线程数. 每次有一个线程获得信号量时,计数器-1.若计数器为0,其他线程就停止访问信号量,直到另一个线程释放信号量. ''' import threading import random import time class MyThread(threading.Thread): availableTables=[

Python学习(三)数据结构

Python 数据结构 本章介绍 Python 主要的 built-type,包括如下: Numeric types          int float Text Sequence Type       str Boolean              bool Sequence  Types        list tuple range Mapping Types          dict Set Types             set type() 函数 type(object)