Khi cần in các hàng từ ma trận mà tất cả các phần tử trong hàng có cùng ký tự tại một chỉ số cho trước (so với phần tử đầu tiên của hàng), ta dùng list comprehension và all().
Ví dụ
my_list = [[7745, 6755, 87, 978], [727, 927, 845], [192, 997, 49], [98, 74, 27]]
print("Danh sách ban đầu:")
print(my_list)
my_key = 1
print("Chỉ số khóa:")
print(my_key)
my_result = [element for element in my_list if all(str(i)[my_key] == str(element[0])[my_key] for i in element)]
print("Kết quả:")
print(my_result)
Kết quả
Danh sách ban đầu: [[7745, 6755, 87, 978], [727, 927, 845], [192, 997, 49], [98, 74, 27]] Chỉ số khóa: 1 Kết quả: [[7745, 6755, 87, 978], [192, 997, 49]]
Giải thích
Định nghĩa ma trận số nguyên và chỉ số khóa (ví dụ 1 – chữ số hàng chục).
Chuyển mỗi số thành chuỗi, lấy ký tự tại vị trí my_key.
So sánh với ký tự tại vị trí my_key của phần tử đầu tiên của hàng (
element[0]).Dùng
all()đảm bảo mọi phần tử trong hàng thỏa mãn.In các hàng thỏa mãn.