堅牢な Python の学習ノート

  • 設定()

>>>x = set('runoob') >>> y = set('google') 
>>> x, y (set(['b', 'r', 'u', 'o', 'n']), set(['e', 'o', 'g', 'l'])) 
# 重复的被删除 
>>> x & y 
# 交集 set(['o']) 
>>> x | y 
# 并集 set(['b', 'e', 'g', 'l', 'o', 'n', 'r', 'u']) 
>>> x - y 
# 差集 
set(['r', 'b', 'u', 'n'])
with open  as file
# 相当于
try 
final file.close()
  • 主張する

assert true/false ,"string"
# 如果false ,抛出错误 提示 为 string
  • 下線

单下划线函数,外部无法import *

类里的双下划线,无法被外部利用,
前后双下划线可以,但是不要用,因为python版本更新后作者会用

_ 表示没有赋值的最后一个值

データ構造リストの最適化

  • リスト内包表記が特別な理由

  1. リスト内包の高速化

  1. 範囲はメモリを占有しません

“,”.join(str(n) for n in range(100))
  • Map()、filter() の代わりにリスト内包表記を使用する

def is_odd_number(number: int) -> bool:
	return number % 2 == 1
odd_numbers = filter(is_odd_number,nums)
odd_numbers_doubled = list(map(lambda x: x*2,odd_numbers))
# https://www.runoob.com/python/python-func-map.html
  1. 負のインデックス

  1. iterable の all と any の決定

# 内置函数
sum([1,2,3])

# all和any,iterable 是可迭代对象
def has_zero(iterable):
	return not all(iterable)
  1. * 演算子を使用して残りのシーケンスを操作します

  1. array.array プリミティブ型の配列を取得します

厳密に型指定されている (つまり、要素の型は変更できません)

  1. str を含む不変の Unicode 文字配列

  1. bytearray を使用したシングルバイトの可変シーケンス

バイト (データをバイナリ形式で保存) 不変

![[貼り付け画像20230206163729.png]]

  1. バイトを不変のシングルバイトシーケンスとして使用する

効率的な辞書

  • デフォルトパラメータ

my_car = cars_config.get("volvo123","CCC")
  • デフォルトディクショナリを使用する

from collections import defaultdict
_dict = defaultdict(list)

![[貼り付け画像20230206170239.png]]

  • 辞書はSwitch-caseをシミュレート(多重化を実現)

オブジェクト指向開発の原則: 変更はクローズド、拡張機能はオープンである必要があります。

Python 3.10

  • 辞書の理解により辞書の構築が最適化されます

おすすめ

転載: blog.csdn.net/weixin_42829932/article/details/128905534