目录
- del和pop在删除列表元素上的区别
- 用lambda表达式对列表进行排序
- 字典键值支持哪些数据类型
- 对产生器类型的对象使用切片
- 将循环产生的列表变成产生器
- Python字典与JSON字符串如何互转
11.del和pop在删除列表元素上的区别
13.用lambda表达式对列表进行排序
a =[
{'name': 'Bill', 'age': 40},
{'name': 'Mike', 'age': 10},
{'name': 'John', 'age': 20}
]
print(sorted(a, key=lambda x:x['age']))
[{'name': 'Mike', 'age': 10}, {'name': 'John', 'age': 20}, {'name': 'Bill', 'age': 40}]
a.sort(key=lambda x:x['age'], reverse= True)
print(a)
[{'name': 'Bill', 'age': 40}, {'name': 'John', 'age': 20}, {'name': 'Mike', 'age': 10}]
总结
13.字典键值支持哪些数据类型
列表和字典类型不能作为键值
因为 key 是不能变的,但列表和字典的值是可以变化的,一旦变化就再也找不到对应的 value 了
14.对产生器类型的对象使用切片
from itertools import islice
gen = iter(range(10))
print(type(gen))
for i in islice(gen, 2, 6):
print(i, end=' ')
总结
15.将循环产生的列表变成产生器
a = [i for i in range(10)]
print(a) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(type(a)) # <class 'list'>
b = (i for i in range(10))
print(type(b)) # <class 'generator'>
for i in b:
print(i, end=' ')
# 0 1 2 3 4 5 6 7 8 9
x = (1, 2, 3, 4)
print(type(x)) # <class 'tuple'>
总结
没有for的话,将变成一个元组
16.Python字典与JSON字符串如何互转
import json
a = {'a': 1, 'b': '2', 'c': 'x'}
print(a) # {'a': 1, 'b': '2', 'c': 'x'}
print(type(a)) # <class 'dict'>
json_str = json.dumps(a)
print(json_str) # {"a": 1, "b": "2", "c": "x"}
print(type(json_str)) # <class 'str'>
a1 = json.loads(json_str)
print(a1) # {'a': 1, 'b': '2', 'c': 'x'}
print(type(a1)) # <class 'dict'>
总结