A correspondência de padrões em [[Linguagem de programação Python|Python]] permite que uma dada expressão seja avaliada com base em certos casos. Aqui está uma demonstração de seu uso. ```python command = "swing sword" [action, obj] = command.split() match command.split(): case["get", obj]: print("Getting the " + obj) case["swing", obj]: print('Swinging the ' + obj + '! AHHHH!') case _: # Curinga para qualquer outro caso de correspondência raise ValueError("Don't know how to " + command) # Resultado: Swinging the sword! AHHHH! # Você pode alterar o comando para incluir outros elementos. ``` Um exemplo mais complexo envolve a desestruturação de dados usando [[Unpacking sequences and iterables in Python]] da seguinte forma: ```python metro_areas = [ ('Tokyo', 'JP', 36.933, (35.689722, 139.691667)), ('Delhi NCR', 'IN', 21.935, (28.613889, 77.208889)), ('Mexico City', 'MX', 20.142, (19.433333, -99.133333)), ('New York-Newark', 'US', 20.104, (40.808611, -74.020386)), ('São Paulo', 'BR', 19.649, (-23.547778, -46.635833)), ] def main(): print(f'{"":15} | {"latitude":>9} | {"longitude":>9}') for record in metro_areas: match record: case [name, _, _, (lat, lon)] if lon <= 0: print(f'{name:15} | {lat:9.4f} | {lon:9.4f}') main() # resultados: # | latitude | longitude # Mexico City | 19.4333 | -99.1333 # New York-Newark | 40.8086 | -74.0204 # São Paulo | -23.5478 | -46.6358 ``` :: **Referência** :: [PEP 634 – Structural Pattern Matching: Specification](https://peps.python.org/pep-0634/)