python之字典相关函数及注意事项

目录

1.字典的定义

2.字典的创建

3.字典的增删改查

3.1 增

3.2 删

3.3 改

3.4 查

4.字典获取视图对象

5.字典的其他操作


1.字典的定义

py中唯一实现映射关系的内置类型,例如:摩斯密码的解译。

# 摩斯密文表
c_table = [".-", "-...", "-.-.", "-..", ".", "..-.",
           "--.", "....", "..", ".---", "-.-", ".-..",
           "--", "-.", "---", ".--.", "--.-", ".-.",
           "...", "-", "..-", "...-", ".--", "-..-",
           "-.--", "--..", ".----", "..---", "...--", "....-",
           ".....", "-....", "--...", "---..", "----.", "-----"]
# 摩斯明文表
d_table = ["A", "B", "C", "D", "E", "F",
           "G", "H", "I", "J", "K", "L",
           "M", "N", "O", "P", "Q", "R",
           "S", "T", "U", "V", "W", "X",
           "Y", "Z", "1", "2", "3", "4",
           "5", "6", "7", "8", "9", "0"]
    
code = input("请输入摩斯密码:")
split_code = code.split(" ")
result = [d_table[c_table.index(each)] for each in split_code]
print(result)

2.字典的创建

以下介绍5种字典创建的方法:

第一种dict(键="值",键="值",键="值")

n = dict(a="1",b="2",c="3")
n
>>>{'a': '1', 'b': '2', 'c': '3'}

第二种dict([("键","值"),("键","值"),("键","值")])

c = dict([("a","1"),("b","2"),("c","3")])
c
>>>{'a': '1', 'b': '2', 'c': '3'}

第三种({"键":"值","键":"值","键":"值"})

s = dict({"a":"1","c":"2","d":"3"})
s
>>>{'a': '1', 'c': '2', 'd': '3'}

第四种({"键":"值","键":"值","键":"值"},键="值")

z = dict({"a":"1","c":"2","d":"3"},e="5")
z
>>>{'a': '1', 'c': '2', 'd': '3', 'e': '5'}

第五种(zip(["键","键","键"],["值","值","值"]))

e = dict(zip(["a","b","c"],["5","6","7"]))
e
>>>{'a': '5', 'b': '6', 'c': '7'}

3.字典的增删改查

3.1 增

首先我们使用fromkeys(iterable[,values])函数,快速创建一个所有值相同的字典。

z = dict.fromkeys("abcde",233)
z
>>>{'a': 233, 'b': 233, 'c': 233, 'd': 233, 'e': 233}

然后我们使用字典名["f"] = 332的方法就可以将改键与值增加到字典里面,

如果键f本就存在字典中,则按照新值进行替换

如果键f不存在字典中,则再最后新增该键值对

z
>>>{'a': 233, 'b': 233, 'c': 233, 'd': 233, 'e': 233}
z["f"] = 332
z
>>>{'a': 233, 'b': 233, 'c': 233, 'd': 233, 'e': 233, 'f': 332}
z["a"] = 332
z
>>>{'a': 332, 'b': 233, 'c': 233, 'd': 233, 'e': 233, 'f': 332}

3.2 删

pop(key[,default])函数可以实现删除指定键值对,如果字典中没有该键,使用pop则会出错,但是为了优化用户体验,可以添加"指定语句"来解决,如下。

z
>>>{'a': 332, 'b': 233, 'c': 233, 'd': 233, 'e': 233, 'f': 332}
z.pop("a")
>>>332
z
>>>{'b': 233, 'c': 233, 'd': 233, 'e': 233, 'f': 332}
z.pop("g","找不到,无法删除")
>>>'找不到,无法删除'
z
>>>{'b': 233, 'c': 233, 'd': 233, 'e': 233, 'f': 332}

popitem()函数可以删除最后一个加入字典的键值对,

另外也可以使用del字典名["键"],进行删除。

z
>>>{'b': 233, 'c': 233, 'd': 233, 'e': 233, 'f': 332}
del z["b"]
z
>>>{'c': 233, 'd': 233, 'e': 233, 'f': 332}

最后可以clear()函数可以清空字典的内容。

z
>>>{'c': 233, 'd': 233, 'e': 233, 'f': 332}
z.clear()
z
>>>{}

3.3 改

如果要修改单个值,则可以使用以下方法:

z = dict({"a":"1","b":"2","c":"3","d":"4"})
z
>>>{'a': '1', 'b': '2', 'c': '3', 'd': '4'}
z["a"] = 100
z
>>>{'a': 100, 'b': '2', 'c': '3', 'd': '4'}

如果需要同时修改多个值,可以使用update([other])。

z
>>{'a': 100, 'b': '2', 'c': '3', 'd': '4'}
z.update(b='200',c='300')
z
>>>{'a': 100, 'b': '200', 'c': '300', 'd': '4'}
 

z.update({'b':2000,'c':3000})
z
>>>{'a': 100, 'b': 2000, 'c': 3000, 'd': '4'}

3.4 查

首先我们可以通过指定键查值,如果键不存在,则报错。

z
>>>{'a': 100, 'b': 2000, 'c': 3000, 'd': '4'}
z['a']
>>>100
z['g']
Traceback (most recent call last):
  File "<pyshell#41>", line 1, in <module>
    z['g']
KeyError: 'g'

我们可以使用get(key[,defualt])函数来消除这个报错,让用户体验更好一些。

z.get('g',"字典里面没有啊!")
>>>'字典里面没有啊!'

接下来的setdefault(key[,default])函数,相比于get(key[,defualt])函数,可以在字典没有该键值对的情况下,对字典进行更新,且不会报错。例如:

z
>>>{'a': 100, 'b': 2000, 'c': 3000, 'd': '4'}
z.setdefault("g","255")
>>>'255'
z
>>>{'a': 100, 'b': 2000, 'c': 3000, 'd': '4', 'g': '255'}

4.字典获取视图对象

视图对象表示字典的动态视图,意味着当字典内容发生改变时,视图对象内容也相应的改变。

 下面介绍三个函数,values(),keys(),items()分别可以获取字典的值,键,键值对。

z
>>>{'a': 100, 'b': 2000, 'c': 3000, 'd': '4', 'g': '255'}
z.values()
>>>dict_values([100, 2000, 3000, '4', '255'])
z.keys()
>>>dict_keys(['a', 'b', 'c', 'd', 'g'])
z.items()
>>>dict_items([('a', 100), ('b', 2000), ('c', 3000), ('d', '4'), ('g', '255')])

5.字典的其他操作

1.len()函数获取字典的长度

2.in/not in判断某个键是否存在与字典中:"key" in dict /"key" not in dict

3.字典转换为列表,使用list()函数,例如:

z
>>>{'a': 100, 'b': 2000, 'c': 3000, 'd': '4', 'g': '255'}
list(z)
#将字典的键转化为列表
>>>['a', 'b', 'c', 'd', 'g']
#将字典的值转化为列表
list(z.values())
>>>[100, 2000, 3000, '4', '255']

4.逐个遍历迭代器,例如:

z
>>>{'a': 100, 'b': 2000, 'c': 3000, 'd': '4', 'g': '255'}
b = iter(z)
next(b)
>>>'a'
next(b)
>>>'b'
next(b)
>>>'c'
next(b)
>>>'d'
next(b)
>>>'g'
next(b)
>>>Traceback (most recent call last):
  File "<pyshell#63>", line 1, in <module>
    next(b)
StopIteration

6.字典内部逆向排序,我们使用到reverse()函数,例如:

z
>>>{'a': 100, 'b': 2000, 'c': 3000, 'd': '4', 'g': '255'}

list(reversed(z))
>>>['g', 'd', 'c', 'b', 'a']

7.字典的嵌套,例如:

z = {"a":{"A":"01"},"b":{"B":"02"}}
z["a"]["A"]
>>>'01'

8.字典推导式,例如:

n = {"a":"123","b":"234","c":"345","d":"456"}
a = {v:k for k,v in n.items()}
a
>>>{'123': 'a', '234': 'b', '345': 'c', '456': 'd'}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值