????????在 Python 中,模式匹配(Pattern Matching)?是一種強大的功能,用于根據數據的結構或內容進行匹配和處理。Python 3.10 引入了?match
?語句,使得模式匹配更加直觀和靈活。模式匹配可以用于處理復雜的數據結構,如列表、字典、類實例等。
模式匹配的基本用法
"""
match 數據:case 模式1:# 匹配模式1時執行的代碼case 模式2:# 匹配模式2時執行的代碼case _:# 默認情況,匹配任意模式# 數據:需要匹配的對象
# 模式:描述數據的結構或內容
# _:通配符,匹配任意結構"""
結構的模式匹配?
date=eval(input('請輸入要匹配的數據:'))
match date:case {'name':'迪迦','age':10086}:print('字典')case (1,2,4):print('元組')case [1,2,4]:print('序列')case _:print('相當于多重if中的else')
# 請輸入要匹配的數據:'helloworld'
# 相當于多重if中的else
# 請輸入要匹配的數據:helloworld
# NameError: name 'helloworld' is not defined
輸出結果:
請輸入要匹配的數據:{'name':'迪迦','age':10086}
字典
同步迭代|zip()+match
???????同步迭代?是指在 Python 中同時遍歷多個可迭代對象(如列表、元組、字符串等),并在每次迭代中處理這些對象的對應元素。同步迭代通常用于處理多個相關數據集,例如將兩個列表中的元素一一對應進行操作。
?????????zip()
?是 Python 中實現同步迭代的常用工具。它可以將多個可迭代對象“壓縮”成一個迭代器,生成由對應元素組成的元組。
? ? ? ? 因為集合是無序的,因此每次輸出的結果可能不同。
fruits={'pear','apple','orange','grape'} # 集合是無序的
counts={1,34,56,7}
for f,c in zip(fruits,counts):match f,c:case 'apple',34:print('34個蘋果')case 'pear','56':print('56個梨')case 'orange',7:print('7個橙子')case 'pear','1':print('1顆葡萄')
若有錯誤,敬請批評指正?