字典
#1. 基础操作
name =
{'zhang':'10',
'li':'5'}
dict(name)
#将列表等转换为字典
name['zhang']
#查询
name['zhang']
=
15
#赋值
del name['zhang']
#删除键值
name =
{
#可多行写法
-
'zhang':
'10',
-
'li':
'5'
-
}
#2. 遍历
for key,value in name.items():
-
print(key value)
#3. 其它操作
name.keys()
#key
name.values()
#所有值
set(name.values())
#变成集合,内容就唯一
name.update(xx)
#将其它字典加入到里面
name.items()
#返回所有键值对,放在list中为一堆元组
name.clear()
#清空字典
name.get('xx','not a value')
#查询值,不存在则显示第二个参数
list(name.values())
#将所有value做成一个列表
new = name.copy()
#复制
name.setdefault('key','value')
#值不存在则覆盖,防止报错
#4. 查询的键不存在,默认显示0,里面放int默认为0,可以做初始化后, 1当计数器用
from collections import defaultdict
name = defaultdict(int)
#默认值
name = defaultdict(lambda:
'Huh?')
#默认值,也可以是列表,数组
name['xx']
集合
#1. 基础操作
name = set()
#空集合
name =
{1,2,3}
#无序,不允许重复
set('abca')
#去除重复,变成集合。若填写字典,则只会读取键
#2. 集合交互
if name &
{'a','b'}:
#交集运算符,可以查是否在包含其中一种
a & b #2个集合的交集
d.intersection(b)
#同上,显示交集
a | b #并集
a.union(b)
#并集
a - b #差集,出现在第一个的,不出现在第二个里的
a.difference(b)
#差集
a ^ b #异或集,找出不同部分
a.symmetric_difference(b)
a <= b #判断子集,b是否包含a全部内容
a.issubset(b)
a > b #真子集,b是否包含a,并且有其它内容
#3. 迭代
for a,b,c in zip(oen,two,three)
#对多个序列进行迭代,会在最短用完停止
dict(zip(one,two))
#将列表做成一个字典
list(range(0,3))
#4. 推导式,生成器只能用一次,被迭代或者调用就没了
name =
[number for number in range(1,6)]
#显示1-5
name =
[number for number in range(1,6)
if number %2
==
1]
name =
[(a,b)
for a in range(1,5)
for b in range(2,4)]
name =
{a:b for a in range(1,5)
for b in range(2,4)}
#字典推导式
name =
{number for number in range(1,6)}
#集合推导式
name =
(number for number in range(1,6))
#生成器推导式,返回生成器对象