Một danh sách Python có thể chứa tuple làm phần tử của nó. Bài viết này khám phá cách truy cập mọi phần tử thứ n từ các tuple hiện diện như phần tử trong danh sách cho trước.
Sử dụng chỉ mục
Ta có thể thiết kế một vòng lặp for để truy cập các phần tử từ danh sách với mệnh đề in áp dụng cho chỉ mục thứ n. Sau đó lưu kết quả vào một danh sách mới.
Ví dụ
Alist = [('Mon','3 pm',10),('Tue','12pm',8),('Wed','9 am',8),('Thu','6 am',5)] #Danh sách cho trước print("Danh sách cho trước: ",Alist) # Sử dụng chỉ mục res = [x[1] for x in Alist] print("Phần tử thứ 1 từ mỗi tuple trong danh sách: \n",res)Kết quả
Chạy mã trên cho kết quả sau −
Danh sách cho trước: [('Mon', '3 pm', 10), ('Tue', '12pm', 8), ('Wed', '9 am', 8), ('Thu', '6 am', 5)] Phần tử thứ 1 từ mỗi tuple trong danh sách: ['3 pm', '12pm', '9 am', '6 am']Sử dụng itemgetter
Hàm itemgetter từ module operator có thể lấy từng mục từ iterable cho trước cho đến khi iterable được tìm kiếm hết. Trong chương trình này, ta tìm kiếm vị trí chỉ mục 2 từ danh sách cho trước và áp dụng hàm map để áp dụng cùng hàm lặp lại cho mỗi kết quả từ kết quả của hàm itemgetter. Cuối cùng lưu kết quả dưới dạng danh sách.
Ví dụ
from operator import itemgetter Alist = [('Mon','3 pm',10),('Tue','12pm',8),('Wed','9 am',8),('Thu','6 am',5)] #Danh sách cho trước print("Danh sách cho trước: ",Alist) # Sử dụng itemgetter res = list(map(itemgetter(2), Alist)) print("Phần tử thứ 1 từ mỗi tuple trong danh sách: \n",res)Kết quả
Chạy mã trên cho kết quả sau −
Danh sách cho trước: [('Mon', '3 pm', 10), ('Tue', '12pm', 8), ('Wed', '9 am', 8), ('Thu', '6 am', 5)] Phần tử thứ 1 từ mỗi tuple trong danh sách: [10, 8, 8, 5]