Python Tips


文章目录

  • Python Tips
  • 1.函数注解
  • 2.defalutdict
  • 3.降低各种组合数据类型的可变性、只读化
  • 4.if else的简单写法


1.函数注解

from typing import *

def func(a: int, b: List[List[int]]):
    ...

def func(a: int, b: Dict[str, int]):
    ...

def func(x: int, y: int) -> int:
    return x + y

a: int = 1
c: List[int] = [1, 2, 3]

2.defalutdict

在字典中查找某个值时,若key不存在时则会返回一个KeyError错误而不是一个默认值,这时候可以使用defaultdict函数。

注意: 使用dict[key]=value时,若key不存在则报错;使用dict.get(key)时,若key不存在则会返回一个默认值。

import random
from collections import defaultdict

# 1.default使用方式
b = defaultdict(list)
b['第一个'] = 'str1'
b['第二个'].append(1)

# 2.普通字典使用方式
dic = {}
if 'a' in dic:
    dic['a'].append(1)
else:
    dic['a'] = []
    
# 3.表示图
graph = defaultdict(set)

for i in range(10):
    for _ in range(3):
        graph[i].add(random.randint(0, 9))

print(graph)

3.降低各种组合数据类型的可变性、只读化

from types import MappingProxyType

if __name__ == '__main__':
    arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    t = tuple(arr)

    s = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
    fs = frozenset(s)

    dic = {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
    mp = MappingProxyType(dic)

4.if else的简单写法

a, b, c = 1, 2, 3
c = a  if a >b else b