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

โปรแกรม Python สร้าง Dictionary จาก String

ในบทความนี้ เราจะเรียนรู้วิธีแก้ปัญหาตามข้อกำหนดด้านล่าง

ข้อกำหนดปัญหา − เราได้รับ string input ต้องแปลงเป็น dictionary type

ที่นี่เราจะอภิปราย 2 วิธีแก้ปัญหาโดยไม่ใช้ built-in dict() function

วิธีที่ 1 − ใช้ eval() method

เมธอด Eval ใช้ได้ก็ต่อเมื่อไวยากรณ์หรือรูปแบบของ string คล้ายกับ dictionary การแปลง string เป็น dictionary โดยตรงเกิดได้ในกรณีนั้น

ตัวอย่าง

# 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 − ใช้ Generator functions

ถ้าเราได้ string input ที่คล้ายไวยากรณ์ dictionary ด้วยความช่วยเหลือของ generator expressions เราสามารถแปลงเป็น dictionary ได้

ตัวอย่าง

string = "T-3, U-2, T-1, O-4, R-5"
# แปลง string เป็น 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

สรุป

ในบทความนี้ เราได้เรียนรู้วิธีสร้าง Dictionary จาก String 2 วิธี: eval() (ต้องระวังความปลอดภัย) และ generator expression กับ split