Python学习2022/3/30(字典、集合)

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值