ในบทความนี้ เราจะเรียนรู้เกี่ยวกับวิธีแก้ปัญหาตามที่ระบุด้านล่าง
แจ้งปัญหา − เราได้รับอินพุตสตริง เราต้องแปลงเป็นประเภทพจนานุกรม
เราจะพูดถึงสองวิธีในการแก้ปัญหาโดยไม่ต้องใช้ฟังก์ชัน dict() ในตัว
วิธีที่ 1 − ใช้วิธี eval()
เมธอด Eval จะใช้ก็ต่อเมื่อรูปแบบหรือรูปแบบของสตริงคล้ายกับพจนานุกรมเท่านั้น การแปลงสตริงเป็นพจนานุกรมโดยตรงสามารถเกิดขึ้นได้ในกรณีดังกล่าวตามที่อธิบายด้านล่าง
ตัวอย่าง
# String string = "{'T':1, 'U':2, 'T':3, 'O':4, 'R':5}" # eval() function dict_string = eval(string) print(dict_string) print(dict_string['T']) print(dict_string['T'])
ผลลัพธ์
{'T': 3, 'U': 2, 'O': 4, 'R': 5} 3 3
วิธีที่ 2 - การใช้ฟังก์ชันตัวสร้าง
หากเราได้รับอินพุตสตริงที่คล้ายกับไวยากรณ์ของพจนานุกรม ด้วยความช่วยเหลือของนิพจน์ตัวสร้าง เราสามารถแปลงเป็นพจนานุกรมได้
ตัวอย่าง
string = "T-3 , U-2 , T-1 , O-4 , R-5" # Converting string to dictionary dict_string = dict((x.strip(), y.strip()) for x, y in (element.split('-') for element in string.split(', '))) print(dict_string) print(dict_string['T']) print(dict_string['T'])
ผลลัพธ์
{'T': '1', 'U': '2', 'O': '4', 'R': '5'} 1 1
บทสรุป
ในบทความนี้ เราได้เรียนรู้วิธีสร้างพจนานุกรมจากสตริง