1、字典操作中 del 和 pop 有什么区别?

答:del 可以根据索引(元素所在位置)来删除的,没有返回值。 pop 可以根据索引弹出一个值,然后可以接收它的返回值。

2、按照字典的内的年龄排序

d1 = [
    {'name':'alice', 'age':38},
    {'name':'bob', 'age':18},
    {'name':'Carl', 'age':28},
]

答:

d1 = [
    {'name': 'alice', 'age': 38},
    {'name': 'bob', 'age': 18},
    {'name': 'Carl', 'age': 28},
]

print(sorted(d1, key=lambda x:x["age"]))

3、请合并下面两个字典 a = {"A":1,"B":2},b = {"C":3,"D":4}

答: 合并字典方法很多,可以使用 a.update(b) 或者下面字典解包的方式

a = {"A":1,"B":2}
b = {"C":3,"D":4}
print({**a,**b})

4、如何把字典的 key 和 value 值调换?

d = {'a':'1', 'b':'2'}

print({v:k for k,v in d.items()})

5、如何把元组 ("a","b") 和元组 (1,2),变为字典 {"a":1,"b":2}

答:zip 的使用,但是最后记得把 zip 对象再转换为字典。

a = ("a", "b")
b = (1, 2)
print(dict(zip(a, b)))

6、Python 字典和 json 字符串相互转化方法

在 Python 中使用 dumps 方法 将 dict 对象转为 Json 对象,使用 loads 方法可以将 Json 对象转为 dict 对象。

dic = {'a': 123, 'b': "456", 'c': "liming"}
json_str = json.dumps(dic)
dic2 = json.loads(json_str)
print(dic2)

打印:

'{"a": 123, "b": "456", "c": "liming"}'
{'a': 123, 'b': '456', 'c': 'liming'}

我们再来看一个特殊的例子

import json
dic = {'a': 123, 'b': "456", 'c': "liming"}
dic_str = json.loads(str(dic).replace("'", "\""))
print(dic_str)

下面我解释下上面代码是测试什么:

首先 json.loads(jsonstr) 这里面的参数只能是 jsonstr 格式的字符串.
当我们使用 str 将字典 dic 转化为字符串以后,得到的结果为:"{'a': 123, 'b': '456', 'c': 'liming'}"。
如果直接使用 json.loads(str(dic)) 你会发现出现错误,原因就是,单引号的字符串不符合Json的标准格式所以再次使用了 replace("'", """)。得到字典
其实这个例子主要目的是告诉大家 Json 的标准格式是不支持单引号型字符串的,否则会出现以下错误。
json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)