4 cách sử dụng Tuples thanh lịch trong Python

Tuple là một “loại” tích hợp sẵn rất tiện dụng trong Python. Học cách sử dụng nó một cách chính xác và hiệu quả có thể tạo ra một động lực rất lớn cho chương trình của bạn.
- Cách sử dụng cơ bản
- Chuyển nó thành một danh sách
- Thay đổi giá trị bạn muốn
- Chuyển đổi nó trở lại một tuple.
Một điều bạn cần chú ý là bước chuyển đổi này rất kém hiệu quả. Giả sử nếu bạn có một triệu phần tử, bạn sẽ sao chép hàng triệu phần tử này vào một mảng và sau đó chuyển đổi chúng trở lại. Nó rất kém hiệu quả. Vì vậy, hãy cẩn thận với cách bạn muốn xử lý dữ liệu của mình: nếu dữ liệu đó sẽ bị đột biến nhiều lần trong tương lai, bạn có thể không muốn thu thập chúng trong một bộ dữ liệu. Hãy thử danh sách hoặc numpy.array.
2. Chủ đề trung gian - giải nén
Một bước nữa là học cách giải nén tuple: giải nén tuple chỉ đơn giản là quá trình lấy các phần tử ra khỏi tuple. Ví dụ cổ điển là a,b = (c, d)
, và sau đó chúng ta sẽ có a
với giá trị c
và b
với giá trị d
. Các kỹ thuật tương tự có thể được sử dụng để hoán đổi các biến mà không có các biến tạm thời như a,b=b,a
.
Một cài đặt khác là một tính năng Python 3 cổ điển *
:. *args
trong Python3 chỉ có nghĩa là chúng ta có nhiều hơn 1 đối số, nhưng chúng ta không biết con số chính xác. Tương tự, chúng ta có thể sử dụng *
để giải nén một bộ tuple. *
được sử dụng để giải nén các biến thừa không quan trọng đối với bạn:
Ví dụ: trong đoạn mã trên, chúng ta đã a
lấy phần tử đầu tiên của bộ tuple và b
lấy các giá trị thứ hai. Đối với phần còn lại, chúng ta chỉ có thể sử dụng *
và Python sẽ nhận phần còn lại cho chúng ta.
Ngược lại, nếu bạn không sử dụng *
, bạn sẽ gặp lỗi như sau:
3. Sử dụng hơi nâng cao
Trong nhiều cài đặt, chúng ta sẽ có các cấu trúc lồng nhau trong Python và điều này cũng chứa trong các bộ giá trị. Sử dụng cú pháp giải nén ở trên, chúng tôi vẫn có thể làm việc theo cách của mình để giải nén các bộ giá trị lồng nhau miễn là cấu trúc của bộ mã lồng nhau phù hợp với biểu thức của bạn:
Như bạn có thể thấy, chỉ cần đảm bảo rằng bạn có cấu trúc giải nén phù hợp và Python sẽ lo phần còn lại!
4. Sử dụng nâng cao
Nói chung, một trong những phương pháp hay nhất trong việc viết mã là cung cấp ý nghĩa cho các biến của bạn. Vì tuple cũng là một loại biến, tốt hơn là chúng ta nên cung cấp cho tuple một số ý nghĩa. Python3 cho phép chúng tôi làm điều đó bằng cách giới thiệu namedtuple
, nơi chúng tôi có thể đặt tên cho các phần tử trong bộ tuple.
Thật là tiện dụng phải không nào! Cách sử dụng của hàm namedtuple
là bạn cần cung cấp 2 đối số: đối số đầu tiên là đối số typename
và đối số thứ hai là một chuỗi chứa tên tất cả các trường của bạn trong đó. Ví dụ, trong namedtuple
kiểu Sinh viên, các trường typename
là chỉ Name
và gender, age, GPA
tương ứng. Tuy nhiên, thay vì có các chuỗi riêng biệt được chuyển vào namedtuple
, chúng tôi nối tên của các trường đó với nhau bằng khoảng trắng. Nếu bạn không làm điều này, bạn có thể gặp phải Lỗi Python cho biết số lượng đối số bị sai.
Bên cạnh đó, Python cung cấp ba hàm cho namedtuple
: _fields()
,, _make()
._asdict()
_fields()
chỉ trả về các biến trường của bộ tuple của bạn. Xem ví dụ bên dưới:
_make()
nhận một mã có thể lặp lại, và sau đó biến nó trong một namedtuple
Hãy xem xét đoạn mã sau:
Lưu ý rằng chúng tôi gọi tên / kiểu của namedtuple
thay vì tên phiên bản ( mike
)
Cuối cùng, chúng tôi có tùy chọn trả về namedtuple
kiểu dict
, trong đó các khóa là tên của các trường và giá trị, là các giá trị phiên bản mà bạn đã tạo:
Công việc tốt đẹp! Bây giờ bạn đã hiểu đầy đủ về 4 cách sử dụng bộ giá trị trong mã Python. Bước tiếp theo chỉ là áp dụng những gì bạn đã học vào thực tế và dần dần tìm hiểu khi nào thì nên áp dụng tuple và khi nào thì không. Chúc bạn học vui vẻ & viết mã vui vẻ!
Nội dung khác tại PlainEnglish.io . Đăng ký nhận bản tin hàng tuần miễn phí của chúng tôi . Theo dõi chúng tôi trên Twitter và LinkedIn . Tham gia bất hòa cộng đồng của chúng tôi .