Ta có danh sách Python chứa cả chuỗi và số. Trong bài này, ta sẽ thấy cách cộng các số trong danh sách đó bằng cách bỏ qua chuỗi.
Với filter và isinstance
Hàm isinstance dùng để lọc chỉ số từ các phần tử trong list. Sau đó áp dụng hàm sum lấy kết quả cuối.
Ví dụ
listA = [1, 14, 'Mon', 'Tue', 23, 'Wed', 14, -4]
# Danh sách cho trước
print("Danh sách cho trước: ", listA)
# Cộng giá trị số
res = sum(filter(lambda i: isinstance(i, int), listA))
print("Tổng các số trong listA: ", res) Kết quả
Chạy mã trên cho kết quả sau:
Danh sách cho trước: [1, 14, 'Mon', 'Tue', 23, 'Wed', 14, -4] Tổng các số trong listA: 48
Với vòng lặp for
Cách tương tự, chỉ không dùng filter mà dùng vòng lặp và điều kiện isinstance. Sau đó áp dụng hàm sum.
Ví dụ
listA = [1, 14, 'Mon', 'Tue', 23, 'Wed', 14, -4]
# Danh sách cho trước
print("Danh sách cho trước: ", listA)
# Cộng giá trị số
res = sum([x for x in listA if isinstance(x, int)])
print("Tổng các số trong listA: ", res) Kết quả
Chạy mã trên cho kết quả sau:
Danh sách cho trước: [1, 14, 'Mon', 'Tue', 23, 'Wed', 14, -4] Tổng các số trong listA: 48