字典

概念

字典中的键是唯一的,不可以重复。

值不是唯一的可以重复

键必须是可哈希对象:

整数、布尔值、字符串、元组

列表不是可哈希对象

创建空字典:

a={} 或 dict()

有序性:

python 3.6之后字典变为有序字典,按照插入顺须排列

内置函数:

hash()

判断一个对象是否可哈希

返回哈希码或抛出异常

get()方法

查找字典中是否存在某个键值,返回None或相应的键值。

注意

sum函数用于字典时 返回字典键值的和而不是值的和。

集合

若不关心元素顺序,使用集合来存储数据比使用列表效率更高。

创建空集合

set() 或 set({})

注意 :{}是创建一个空字典而不是集合。

内置函数:

len()

返回集合的长度

max()

返回集合中最大的值

min()

返回集合中最小的值

运算符:

in 或not in

判断与元素是否在集合中

is 或 is not

判断两个集合是否为同一个对象

== 或 !=

判断两个集合是否包含相同的元素

<

判断一个集合是否为另一个集合的真子集

<=

判断一个集合是否为另一个集合的子集

两个集合的并集

&

两个集合的交集

-

差集: 指出现在第一个集合但不出现在第二个集合的元素

^

对称差集 :包含这两个集合共有元素之外所有元素的新集合。

方法:

issubset()/isuperset()

判断子集/超集

union()

实现集合合并

intersection()

实现集合交集

difference()

实现集合差集操作

symmetric_difference()

实现集合对称差集操作

遍历集合

使用for语句:

for value in set:

注意 :集合不是序列类型,不能通过下标或切片操作来访问集合中的元素。

集合解析

set1={expr for iter_var in iterable}

example:

set1={value for value in range(0,11,2)}

set1={0,2,4,6,8,10}

首先循环iterable中的内容,每一次循环都吧iterable中的相应内容放到iter_var中,再在expr中应用该内容,最后用expr的值生成一个集合。

set1={expr for iter_var in iterable if cond_expr}

example:

set2={0.5*value for value in set1 if value >2 }

set2={2,3,4,5}

加入了判断语句

向可变集合添加元素

add(x)方法

将元素x添加到可变集合中

update()方法

用两个集合的并集更新第一个集合

intersection_update()方法

用两个集合的交集更新第一个集合

difference_update()方法

用两个集合的差集更新第一个集合

symmetric_difference_update()方法

用两个集合的对称差集更新第一个集合

从可变集合删除元素

pop()方法

从可变集合中删除并返回一个元素。若可变集合为空集合,则抛出KeyError异常。

remove(x)方法

从可变集合中删除元素x,若可变集合中元素x不存在,则抛出KeyError异常。

discard() 方法

从可变集合中删除元素x,若可变集合中元素x不存在,则不做任何事情。

clear() 方法

删除集合中的所有元素

del语句

删除整个集合

set1={1,2,3}

del set1

print(set1)

NameError: name 'set1' is not defined