Khi thao tác dữ liệu Python, có thể gặp danh sách chứa số dưới dạng chuỗi. Cần chuyển list of strings thành tuples.
Sử dụng map và eval
Dùng map() áp dụng eval() cho từng phần tử list, lưu kết quả vào list.
Ví dụ
listA = ['21, 3', '13, 4', '15, 7'] # Danh sách cho trước
print("Given list : \n", listA)
# Sử dụng eval
res = list(map(eval, listA)) # Kết quả
print("List of tuples: \n", res)
Kết quả
Chạy đoạn mã trên cho kết quả sau:
Given list : ['21, 3', '13, 4', '15, 7'] List of tuples: [(21, 3), (13, 4), (15, 7)]
Sử dụng map và split
Dùng split() tách phần tử bằng dấu phẩy thành 2 phần tử riêng biệt. Sau đó áp dụng tuple() và map(int, ...) để tạo tuple chứa cặp số.
Ví dụ
listA = ['21, 3', '13, 4', '15, 7'] # Danh sách cho trước
print("Given list : \n", listA)
# Sử dụng split
res = [tuple(map(int, sub.split(', '))) for sub in listA] # Kết quả
print("List of tuples: \n", res)
Kết quả
Chạy đoạn mã trên cho kết quả sau:
Given list : ['21, 3', '13, 4', '15, 7'] List of tuples: [(21, 3), (13, 4), (15, 7)]