Computer >> Máy Tính >  >> Lập trình >> Python

Chuyển đổi chuỗi danh sách thành từ điển bằng Python

Ở đâ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})