Python 学习记录-字典 2022.10.4

本文介绍了Python中字典的基本操作方法,包括创建、增删改查等,并演示了如何利用字典推导式简化代码。此外,还展示了字典在实际场景中的应用案例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

字典

列表推导式:

c_table=["a","c","d"]
d_table=["A","C","D"]

code=input("请输入密码:")
split_code=code.split(" ")
result=[d_table[c_table.index(each)]for each in split_code]
print(result)

字典实现:

c_table={"a":"A","c":"C","d":"D"}
code=input("请输入密码:")
split_code=code.split(" ")
result=[c_table[each]for each in split_code]
print(result)

生成字典

1:以 {} 和 : 组成--x={"吕布":"口口布","关羽":"关习习"}

2:dict()函数,每个参数为一个键值对,键不可以加引号

b=dict(吕布="口口布",关羽="关习习")

3:通过列表和元组的组合

c=dict([("吕布","口口布"),("关羽","关习习"),("刘备","刘宝贝")])

{'吕布': '口口布', '关羽': '关习习', '刘备': '刘宝贝'}

4:快速初始化所有的键值

d=dict.fromkeys("fishc",250)

print(d)
{'f': 250, 'i': 250, 's': 250, 'h': 250, 'c': 250}

d.pop("s") #弹出s对应的值
250
d
{'f': 250, 'i': 250, 'h': 250, 'c': 250} #d中已删除s及其对应的值

d.pop("狗","没有")       #若没有对应的键,且防止程序报错,可设置一个default值
'没有'

5:常用的函数

删:d.popitem() #删除最后加入的一个键值对

       del d["i"]    #删除指定的键值对

改:update([other])  #同时修改和更新多个键值对:

d=dict.fromkeys("fishc")
d
{'f': None, 'i': None, 's': None, 'h': None, 'c': None}
d['s']=112
d
{'f': None, 'i': None, 's': 112, 'h': None, 'c': None}
d.update({'i':12,'h':45})
d
{'f': None, 'i': 12, 's': 112, 'h': 45, 'c': None}

查:get(key[,default])

d.get('C',"这里没有")
'这里没有'

setdefault(key,[,default])    #给不存在的键,赋值default,同时原来的字典发生了更新

d.setdefault('C',"code")
'code'
d
{'f': None, 'i': 12, 's': 112, 'h': 45, 'c': None, 'C': 'code'}

items()  keys()  values()   分别用于获取字典的键值对、键和值 三者的视图对象

视图对象为字典的动态视图,当字典的内容发生改变时,视图对象的内容也相应的跟着改变

举例:

p=dict.fromkeys("abcde",100)
p
{'a': 100, 'b': 100, 'c': 100, 'd': 100, 'e': 100}
p.update({'a':1})
p
{'a': 1, 'b': 100, 'c': 100, 'd': 100, 'e': 100}
keys=p.keys()
values=p.values()
items=p.items()
items
dict_items([('a', 1), ('b', 100), ('c', 100), ('d', 100), ('e', 100)])
p.pop('a')
1
p
{'b': 100, 'c': 100, 'd': 100, 'e': 100}
items
dict_items([('b', 100), ('c', 100), ('d', 100), ('e', 100)])

6:字典的嵌套

d={"吕布":{"语文":60,"数学":80,"英语":90},"关羽":{"语文":70,"数学":90,"英语":100}}
d
{'吕布': {'语文': 60, '数学': 80, '英语': 90}, '关羽': {'语文': 70, '数学': 90, '英语': 100}}
d["吕布"]["数学"]   #进行两次索引
80

7:字典推导式
d={'f':20,'i':30,'s':40,'h':50}
b={v:k for k,v in d.items()}    #互换键和值
b
{20: 'f', 30: 'i', 40: 's', 50: 'h'}
g={v:k for k,v in d.items() if v<40}  #增加了筛选条件
g
{20: 'f', 30: 'i'}


字典求出字符的编码值

d={x:ord(x) for x in "fishc"}
d
{'f': 102, 'i': 105, 's': 115, 'h': 104, 'c': 99}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值