文章目录

  • 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