Ở đây ta có tình huống chuỗi được trình bày có các phần tử làm cho nó thành một list. Nhưng các phần tử đó cũng có thể đại diện cho cặp key-value làm thành dictionary. Trong bài này ta sẽ xem cách lấy chuỗi dạng list đó và biến nó thành dictionary.
Với split và slicing
Trong cách này ta dùng hàm split để tách các phần tử thành cặp key-value và dùng slicing để chuyển cặp key-value thành định dạng dictionary.
Ví dụ
stringA = '[Mon:3, Tue:5, Fri:11]' # Chuỗi cho trước print("Given string : \n",stringA) # Kiểm tra kiểu print(type(stringA)) # sử dụng split res = {sub.split(":")[0]: sub.split(":")[1] for sub in stringA[1:-1].split(", ")} # Kết quả print("The converted dictionary : \n",res) # Kiểm tra kiểu print(type(res))Đầu ra
Chạy mã trên cho kết quả sau:
('Given string : \n', '[Mon:3, Tue:5, Fri:11]') ('The converted dictionary : \n', {'Fri': '11', 'Mon': '3', 'Tue': '5'}) Với eval và replace
Hàm eval có thể lấy list thực tế từ chuỗi và replace sẽ chuyển mỗi phần tử thành cặp key-value.
Ví dụ
stringA = '[18:3, 21:5, 34:11]' # Chuỗi cho trước print("Given string : \n",stringA) # Kiểm tra kiểu print(type(stringA)) # sử dụng eval res = eval(stringA.replace("[", "{").replace("]", "}")) # Kết quả print("The converted dictionary : \n",res) # Kiểm tra kiểu print(type(res))Đầu ra
Chạy mã trên cho kết quả sau:
('Given string : \n', '[18:3, 21:5, 34:11]') ('The converted dictionary : \n', {18: 3, 34: 11, 21: 5})