文章目录
- 1.字典
- 1.1形式
- 1.2操作
- 1.2.1创建
- 1.2.2读取
- 1.2.3添加与修改
- 1.2.4删除
- 1.2.5遍历
- 1.3应用
- 2.集合
- 2.1创建
- 2.2访问
- 2.3删除
- 2.4添加
- 2.5常用运算
1.字典
唯一映射类型:字典(元素无序,即无索引概念)
key-value的键值对
1.1形式
{<键1>:<值2>,<键2>:<值2>,...,<键n>:<值n>}
字典的键:不可变类型,如整数、实数、复数、字符串、元组等;不可重复
1.2操作
1.2.1创建
方法一:使用=
将一个字典赋给一个变量,例如:
方法二:使用内建函数dict()
a={'Alice':60,'Bob':70,"Cathy":80}
b=dict(zip(['a','b','c'],[1,2,3]))
c=dict(Alice=70,Bob=80,Cathy=90)
d=dict([('a',1),('b',2),('c',3)])
e=dict((('a',1),('b',2),('c',3)))
f=dict()
# 两者顺序不一定相同,输出:
{'Alice': 60, 'Bob': 70, 'Cathy': 80}
{'a': 1, 'b': 2, 'c': 3}
{'Alice': 70, 'Bob': 80, 'Cathy': 90}
{'a': 1, 'b': 2, 'c': 3}
{'a': 1, 'b': 2, 'c': 3}
{}
方法三:使用内建函数fromkeys
a={}.fromkeys((1,2,3),'a')
b={}.fromkeys((1,2,3))
c={}.fromkeys(())
# 输出:
{1: 'a', 2: 'a', 3: 'a'}
{1: None, 2: None, 3: None}
{}
1.2.2读取
方法一:使用下标
:用键作索引
方法二:使用get
方法:dict.get(key,default=None)
None为不存在时默认的返回值,可省略
1.2.3添加与修改
方法一:使用字典名[键名]=键值
→存在即修改,不存在即添加
方法二:使用update()
→a.update(b)
批量对字典a进行操作
1.2.4删除
方法一:使用del
命令
a={}.fromkeys((1,2,3),'a')
del a[1]
# 输出:
{2: 'a', 3: 'a'}
方法二:使用pop()
方法
a={}.fromkeys((1,2,3),'a')
print(a.pop(2))#删除并返回指定键的元素
print(a)
# 输出:
a
{1: 'a', 3: 'a'}
方法三:使用popitem
方法
会随机删除某键值对,并返回该键值对
a={'Alice':60,'Bob':70,"Cathy":80}
print(a.popitem())
print(a)
# 输出:
('Cathy', 80)
{'Alice': 60, 'Bob': 70}
方法四:使用clear()
方法→删除所有元素,成为空字典
使用del
命令→会删除该字典对象,即查无此字典
1.2.5遍历
以下均返回列表形式:
①遍历字典关键字
一般形式:dict.keys()
②遍历字典的值
一般形式:dict.values()
③遍历字典元素
一般形式:dict.items()
a={'Alice':60,'Bob':70,"Cathy":80}
print(a.keys())
print(a.values())
print(a.items())
# 输出:
dict_keys(['Alice', 'Bob', 'Cathy'])
dict_values([60, 70, 80])
dict_items([('Alice', 60), ('Bob', 70), ('Cathy', 80)])
1.3应用
输入字符串,统计单词出现次数,且单词之间用空格分隔开
a=input("Input a string:")
a1=a.split()
word={}
for i in a1:
if i in word:
word[i]+=1
else:
word[i]=1
print(word)
输出结果:
Input a string:I want to eat something delicious outside, do you want to go with me
{'I': 1, 'want': 2, 'to': 2, 'eat': 1, 'something': 1, 'delicious': 1, 'outside,': 1, 'do': 1, 'you': 1, 'go': 1, 'with': 1, 'me': 1}
2.集合
0个或多个对应引用的无序且不重复的数据集合体,可进行交并差等运算
2.1创建
方法一:=
a={0,1,2,3,1,4,5,6}
print(a)
# 自动删除重复元素,输出:
{0, 1, 2, 3, 4, 5, 6}
方法二:set()
a=set(['ab',1,3.5])
b=set(('a',1,3.5))
c=set('set')
print(a,b,c)
# 输出:
{1, 3.5, 'ab'} {'a', 3.5, 1} {'e', 't', 's'}
方法三:frozenset()
→创建不可变集合
a=frozenset('a')# 此时可作为字典中的键
b={a:1,'b':2}
c=set('c')# 此时不可
d={c:3,'d':4}# 会报错
2.2访问
方法一:使用in
判断
方法二:循环遍历
a={0,1,2,3,1,4,5,6}
for i in a:
print(i,end='')
# 输出:
0123456
2.3删除
del
删除整个集合s.remove(x)
不存在会提示错误s.discard(x)
不存在不会提示错误s.pop()
随机删除元素s.clear()
删除所有元素
2.4添加
s.add(x)
添加单个元素s.update(s1,s2,...,sn)
添加多个集合,并去重,即取并集
2.5常用运算
交集:s1&s2&...&sn
并集:s1|s2|...|sn
差集:s1-s2-...-sn
对称差集:s1^s2^...^sn