Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

การแปลงสตริงรายการเป็นพจนานุกรมใน Python


ที่นี่เรามีสถานการณ์สมมติที่หากมีการแสดงสตริงซึ่งมีองค์ประกอบอยู่ทำให้เป็นรายการ แต่องค์ประกอบเหล่านั้นยังสามารถแสดงคู่คีย์-ค่าที่ทำให้เป็นพจนานุกรมได้ ในบทความนี้เราจะมาดูวิธีการนำสตริงรายการดังกล่าวมาสร้างเป็นพจนานุกรม

มีการแบ่งและหั่น

ในแนวทางนี้ เราใช้ฟังก์ชัน split เพื่อแยกองค์ประกอบเป็นคู่ของค่าคีย์ และใช้การแบ่งส่วนเพื่อแปลงคู่ของค่าคีย์ให้อยู่ในรูปแบบพจนานุกรม

ตัวอย่าง

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))

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

('Given string : \n', '[Mon:3, Tue:5, Fri:11]')

('The converted dictionary : \n', {'Fri': '11', 'Mon': '3', 'Tue': '5'})

ด้วย eval และแทนที่

ฟังก์ชัน eval สามารถรับรายการจริงจากสตริง จากนั้นการแทนที่จะแปลงแต่ละองค์ประกอบเป็นคู่ของค่าคีย์

ตัวอย่าง

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))

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

('Given string : \n', '[18:3, 21:5, 34:11]')

('The converted dictionary : \n', {18: 3, 34: 11, 21: 5})