Python中的collections集合与typing数据类型模块

  • Post category:Python

下面我来为你详细讲解Python中的collections集合与typing数据类型模块。

collections集合

Python自带的collections模块中提供了多种集合类型,可以更方便的处理各类数据:

defaultdict

defaultdict是字典的一种子类,当引用一个不存在的key时,可以返回一个默认值,而不是抛出KeyError异常:

from collections import defaultdict

d = defaultdict(int)  # 默认值为0
d['a'] += 1
print(d['a'])  # 输出1
print(d['b'])  # 输出0,因为此时'b'并不存在,返回默认值0

Counter

Counter是一个简单的计数器,可以快速统计每个元素出现的次数:

from collections import Counter

c = Counter('hello world')
print(c)  # 输出Counter({'l': 3, 'o': 2, 'e': 1, ' ': 1, 'w': 1, 'r': 1, 'd': 1, 'h': 1})

deque

deque是双向队列,其设计目的是在队列两端进行快速的入队和出队操作:

from collections import deque

d = deque()
d.append(1)
d.appendleft(2)
d.extend([3, 4])
print(d)  # 输出deque([2, 1, 3, 4])
print(d.pop())  # 输出4
print(d.popleft())  # 输出2

typing数据类型模块

typing模块提供了一些用于标注函数和变量的类型提示工具,让Python代码更易读、易懂、易于维护。

定义函数参数和返回类型

通过typing模块我们可以标注函数的参数和返回类型,例如:

from typing import List

def func(a: int, b: str, c: bool, d: List[int]) -> str:
    res = '{}-{}-{}-{}'.format(a, b, c, d)
    return res

上述代码中,函数func()的第一个参数为int类型,第二个参数为str类型,第三个参数为bool类型,第四个参数为List[int]类型。同时,此函数的返回值为str类型。

定义变量类型

在Python中,我们也可以使用typing模块来标注变量类型,例如:

from typing import Tuple

# 定义变量a为元组类型,包含一个整型和一个字符串
a: Tuple[int, str] = (1, 'hello')

上述代码中,我们标注了变量a的类型为元组,包含一个整型和一个字符串。

以上就是对Python中的collections集合与typing数据类型模块的完整攻略,希望能对您有所帮助。