一、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) 【类方法】 #根据建集合初始化一个字典
- iterable :为可迭代的键值集合
- 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集合
- 注意:【for i in a.keys() 】等价于【for i in a】或者直接使用如下方法直接遍历出元素和元组
【for i,k in a.items()】
原文地址:https://www.cnblogs.com/fjjj/p/12626529.html
时间: 2024-09-30 06:26:06