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

Python - วิธีการรวมสตริงเป็นลิสต์

ระหว่างการพัฒนาแอปพลิเคชัน จะมีสถานการณ์มากมายที่เราต้องทำงานกับสตริงและแปลงมันเป็นโครงสร้างข้อมูลที่เปลี่ยนแปลงได้ เช่น ลิสต์ (list)

ตัวอย่างโค้ด

1. ใช้ไลบรารี ast (ปลอดภัยกว่า eval)

import ast

# เริ่มต้นสตริง
str1 = "'Python', 'for', 'fun'"
str2 = "'vishesh', 'ved'"
str3 = "'Programmer'"

# เริ่มต้นลิสต์
result_list = []

# ขยายเป็นลิสต์เดียว
for x in (str1, str2, str3):
    result_list.extend(ast.literal_eval(x))

# แสดงผลลัพธ์
print(result_list)

2. ใช้ eval() (ควรใช้ด้วยความระมัดระวัง)

# ใช้ eval
str1 = "['python', 'for', 'fun']"
str2 = "['vishesh', 'ved']"
str3 = "['programmer']"

out = [str1, str2, str3]
out = eval('+'.join(out))

print(out)

คำเตือน

ast.literal_eval() ปลอดภัยกว่า eval() เพราะมันประเมินเฉพาะ literal structures ของ Python เท่านั้น (สตริง, ตัวเลข, ทูเพิล, ลิสต์, ดิกชันนารี, บูลีน, None) และไม่รันโค้ดที่อาจเป็นอันตราย

สรุป

  • ใช้ ast.literal_eval() สำหรับการแปลงสตริงที่เป็นการแทนค่าของโครงสร้างข้อมูล Python
  • หลีกเลี่ยง eval() ในโค้ดที่ทำงานกับข้อมูลจากภายนอก
  • วิธีอื่นๆ เช่น split() หรือ json.loads() อาจเหมาะสมกว่าขึ้นอยู่กับรูปแบบข้อมูล