Tôi muốn thực hiện một số mẫu khớp trên danh sách bằng Python. Ví dụ, trong Haskell, tôi có thể làm điều gì đó như sau:So khớp mẫu danh sách bằng Python
fun (head : rest) = ...
Vì vậy, khi tôi vượt qua trong một danh sách, head
sẽ là yếu tố đầu tiên, và rest
sẽ là yếu tố dấu.
Tương tự như vậy, trong Python, tôi có thể tự động giải nén các tuple:
(var1, var2) = func_that_returns_a_tuple()
tôi muốn làm một cái gì đó tương tự với danh sách trong Python. Ngay bây giờ, tôi có một hàm trả về một danh sách, và một đoạn mã mà sau:
ls = my_func()
(head, rest) = (ls[0], ls[1:])
Tôi tự hỏi nếu tôi bằng cách nào đó có thể làm điều đó trong một dòng trong Python, thay vì hai.
Tất nhiên bạn có thể đặt lambda rằng trên cùng một dòng với mọi thứ khác: đầu, phần còn lại = (lambda lst: (lst [0], lst [1:])) (my_func()) –
Có, nhưng điều đó bắt đầu khơi dậy sự xáo trộn. –
+1 cho tính năng mới Python 3 và liên kết với PEP. – fossilet