map
参考视频黑马
对每个元素进行操作。
- 需要手动转换为list
list1 = [1,2,3,4,5]
def func(x):
return x**2
res = list(map(func, list1))
print(res)
reduce
求累计结果,返回值为数值。累乘,累加。
# 累乘 累加
import functools
list1 = [1,2,3,4,5]
def func3(a, b):
return a * b
res3 = functools.reduce(func3, list1)
print(res3)
filter
满足条件的留下
- 需要手动转换为list
list1 = [1,2,3,4,5]
def func2(x):
return x%2==0
res2 = list(filter(func2, list1))
print(res2)
deque
- append()
- appendleft()
- insert()
- pop()
- popleft()
- remove()
- reverse()
from collections import deque
dq = deque(['a', 'b', 'c'])
dq.append(1) # 右边加
dq.appendleft(2) # 左边加
dq.insert(2, 'x') # 下标为2的位置插入
dq.pop() # 弹出右边
dq.popleft() # 弹出左边
dq.remove('x') # 删除指定元素
dq.reverse() # 反转
print(dq)
OrderedDict
保持关键字key的顺序,有序字典。底层通过双向链表来实现的,内部通过map函数对指定字典元素序列做映射。
- update()
- pop()
- move_to_end()
from collections import OrderedDict
od = OrderedDict()
od['c'] = 1
od['a'] = 2
od['b'] = 3
print(od) # key是按照元素插入的顺序来排序的,而不是按照key本身
keys = ['apple', 'banana', 'cat']
values = [4, 5, 6]
od.update(zip(keys, values)) # 向老字典之中追加一个新字典,相当于合并了两个字典
print(od)
od.pop('a') # 删除
print(od)
od.move_to_end('b') # 将'b'元素移动到队尾
print(od)
defaultdict
- 使用字典时,如果所引用的键不存在,就会抛出异常-KeyError,从而导致整个程序终止执行
from collections import defaultdict
# defaultdict在键不存在时返回一个默认值
dd = defaultdict(lambda: 'N/A')
dd['key1'] = 'abc'
print(dd['key1'])
print(dd['key2']) # 不存在的key返回N/A
counter
- 统计频次
from collections import Counter
colors = ['red', 'red', 'blue', 'blue', 'green', 'yellow']
result = Counter(colors)
print(dict(result)) # 统计词频
print(result.most_common(2)) # 频次最高的两个对象
datetime
- 当前时间
- 时间戳
from datetime import datetime
now = datetime.now()
print(now)
date = datetime(2021, 1, 3, 9, 30)
print(date)
print(date.year)
print(date.month)
print(date.day)
print(date.hour)
print(date.minute)
print(date.second)
# 我们把1970年1月1日称为epoch time记为0
print(date.timestamp())
print(now.strftime("%Y"))
json
import json
# 定义一个字典
data = {
"name": "yaojun",
"age": 100,
"price": 11.20
}
json_str = json.dumps(data) # 将字典data序列化为json对象
print(json_str) # 序列化的json对象本质是字符串
data1 = json.loads(json_str)
print(data1)
# 如果我们要处理的是文件而不是字符串,则可以使用json.dump()和json.load()来编码和解码