Ở đây chúng ta có một kịch bản trong đó nếu chuỗi được trình bày có các phần tử trong đó làm cho nó trở thành một danh sách. Nhưng những phần tử đó cũng có thể đại diện cho một cặp khóa-giá trị làm cho nó trở thành từ điển. Trong bài viết này, chúng ta sẽ xem cách lấy một chuỗi danh sách như vậy và biến nó thành một từ điển.
Với tách và cắt
Trong cách tiếp cận này, chúng tôi sử dụng hàm tách để phân tách các phần tử dưới dạng cặp giá trị khóa và cũng sử dụng phương pháp cắt để chuyển đổi các cặp giá trị khóa thành định dạng từ điển.
Ví dụ
stringA = '[Mon:3, Tue:5, Fri:11]' # Given string print("Given string : \n",stringA) # Type check print(type(stringA)) # using split res = {sub.split(":")[0]: sub.split(":")[1] for sub in stringA[1:-1].split(", ")} # Result print("The converted dictionary : \n",res) # Type check print(type(res))
Đầu ra
Chạy đoạn mã trên cho chúng ta 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à thay thế
Hàm eval có thể lấy cho chúng ta danh sách thực tế từ một chuỗi và sau đó thay thế sẽ chuyển đổi từng phần tử thành một cặp giá trị khóa.
Ví dụ
stringA = '[18:3, 21:5, 34:11]' # Given string print("Given string : \n",stringA) # Type check print(type(stringA)) # using eval res = eval(stringA.replace("[", "{").replace("]", "}")) # Result print("The converted dictionary : \n",res) # Type check print(type(res))
Đầu ra
Chạy đoạn mã trên cho chúng ta kết quả sau -
('Given string : \n', '[18:3, 21:5, 34:11]') ('The converted dictionary : \n', {18: 3, 34: 11, 21: 5})