Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chỉ cộng các giá trị số trong danh sách Python


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