ได้รับแรงบันดาลใจจากคำตอบบางข้อข้างต้นที่ใช้งานได้กับแพ็กเกจหลามพื้นฐานฉันเปรียบเทียบประสิทธิภาพของการใช้งานบางอย่าง (โดยใช้ Python 3.7.3):
วิธีที่ 1: ast
import ast
list(map(str.strip, ast.literal_eval(u'[ "A","B","C" , " D"]')))
# ['A', 'B', 'C', 'D']
import timeit
timeit.timeit(stmt="list(map(str.strip, ast.literal_eval(u'[ \"A\",\"B\",\"C\" , \" D\"]')))", setup='import ast', number=100000)
# 1.292875313000195
วิธีที่ 2: json
import json
list(map(str.strip, json.loads(u'[ "A","B","C" , " D"]')))
# ['A', 'B', 'C', 'D']
import timeit
timeit.timeit(stmt="list(map(str.strip, json.loads(u'[ \"A\",\"B\",\"C\" , \" D\"]')))", setup='import json', number=100000)
# 0.27833264000014424
วิธีที่ 3: ไม่มีการนำเข้า
list(map(str.strip, u'[ "A","B","C" , " D"]'.strip('][').replace('"', '').split(',')))
# ['A', 'B', 'C', 'D']
import timeit
timeit.timeit(stmt="list(map(str.strip, u'[ \"A\",\"B\",\"C\" , \" D\"]'.strip('][').replace('\"', '').split(',')))", number=100000)
# 0.12935059100027502
ฉันรู้สึกผิดหวังที่เห็นสิ่งที่ฉันพิจารณาวิธีที่มีความสามารถในการอ่านที่แย่ที่สุดคือวิธีที่มีประสิทธิภาพดีที่สุด ... มีข้อควรพิจารณาเมื่อเลือกตัวเลือกที่อ่านได้มากที่สุด ... สำหรับประเภทของงานที่ฉันใช้กับงูใหญ่ ความสามารถในการอ่านค่ามากกว่าตัวเลือกที่มีประสิทธิภาพมากกว่าเล็กน้อย แต่ตามปกติมันขึ้นอยู่กับ