Trong hướng dẫn này, ta viết chương trình trả về phần tử danh sách con đến danh sách con thứ n trong một list. Giả sử ta có list sau với 5 danh sách con.
[['Python', 'Java'], ['C', 'Pascal'], ['Javascript', 'PHP'], ['C#', 'C++'], ['React', 'Angular']] Bây giờ, ta lấy phần tử đầu từ ba danh sách con đầu tiên. Ta lấy phần tử bằng các cách khác nhau. Xem một số cách.
Vòng lặp
Cách chung và suy nghĩ đầu tiên của hầu hết lập trình viên là dùng vòng lặp. Xem mã dùng vòng lặp.
Ví dụ
# Khởi tạo list và N
random_list = [['Python', 'Java'], ['C', 'Pascal'], ['Javascript', 'PHP'], ['C#', 'C++'], ['React', 'Angular']]
N = 3
# List rỗng lưu phần tử cuối từ sublist
desired_elements = []
# Lặp qua list đến phần tử thứ 3
for i in range(N):
# Lưu phần tử đầu từ sublist
desired_elements.append(random_list[i][0])
# In phần tử
print(desired_elements) Kết quả
Nếu chạy mã trên, bạn sẽ nhận được kết quả sau.
['Python', 'C', 'Javascript']
Ta dùng list comprehensions thay for loop. Xem cùng mã dùng list comprehension.
Ví dụ
# Khởi tạo list và N random_list = [['Python', 'Java'], ['C', 'Pascal'], ['Javascript', 'PHP'], ['C#', 'C++'], ['React', 'Angular']] N = 3 # Lấy phần tử đầu từ sublist desired_elements = [sublist[0] for sublist in random_list[:N]] # In phần tử print(desired_elements)
Kết quả
Nếu chạy mã trên, bạn sẽ nhận được kết quả sau.
['Python', 'C', 'Javascript']
Dùng phương thức tích hợp sẵn
Python cung cấp nhiều mô-đun và phương thức tích hợp. Ta dùng chúng giải quyết bài toán. Dùng map, itemgetter, và islice để đạt kết quả mong đợi. Xem mã.
Ví dụ
# Import phương thức cần thiết import operator # cho itemgetter import itertools # cho islice # Khởi tạo list và N random_list = [['Python', 'Java'], ['C', 'Pascal'], ['Javascript', 'PHP'], ['C#', 'C++'], ['React', 'Angular']] N = 3 # Lấy phần tử đầu từ sublist desired_elements = list(map(operator.itemgetter(0), itertools.islice(random_list, N))) # In phần tử print(desired_elements)
Kết quả
Nếu chạy mã trên, bạn sẽ nhận được kết quả sau.
['Python', 'C', 'Javascript']
Kết luận
Bạn có thể lấy bất kỳ phần tử nào thay vì phần tử đầu. Ta lấy phần tử đầu để minh họa. Nếu có thắc mắc, hãy đề cập ở phần bình luận.