Có thể có tình huống cần chuyển đổi các phần tử trong danh sách thành một danh sách riêng. Nói cách khác, tạo một danh sách lồng nhau mà các phần tử của nó cũng là danh sách.
Sử dụng vòng lặp
Đây là cách tiếp cận cơ bản: lấy từng phần tử của danh sách và chuyển đổi nó thành định dạng danh sách. Sử dụng danh sách tạm thời để đạt được điều này. Cuối cùng, nhóm tất cả các phần tử đã chuyển đổi thành danh sách để tạo danh sách lồng nhau yêu cầu.
Ví dụ
listA = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']
print("Danh sách cho trước:\n", listA)
new_list = []
for elem in listA:
temp = elem.split(', ')
new_list.append(temp)
res = []
for elem in new_list:
temp = []
for e in elem:
temp.append(e)
res.append(temp)
print("Danh sách lồng nhau:\n", res)
Kết quả
Danh sách cho trước: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri'] Danh sách lồng nhau: [['Mon'], ['Tue'], ['Wed'], ['Thu'], ['Fri']]
Sử dụng ast
Chúng ta cũng có thể sử dụng module ast (abstract syntax trees) của Python. Nó có hàm literal_eval sẽ giữ các phần tử của danh sách cho trước và chuyển đổi thành danh sách mới.
Ví dụ
import ast
listA = ['"Mon","Tue"', '"Wed","Thu","Fri"']
print("Danh sách cho trước:\n", listA)
res = [list(ast.literal_eval(x)) for x in listA]
print("Danh sách lồng nhau:\n", res)
Kết quả
Danh sách cho trước: ['"Mon","Tue"', '"Wed","Thu","Fri"'] Danh sách lồng nhau: [['Mon', 'Tue'], ['Wed', 'Thu', 'Fri']]