1
เหตุใด str.translate จึงเร็วกว่าใน Python 3.5 มากเมื่อเทียบกับ Python 3.4
ฉันพยายามลบอักขระที่ไม่ต้องการออกจากสตริงที่กำหนดโดยใช้text.translate()ใน Python 3.4 รหัสขั้นต่ำคือ: import sys s = 'abcde12345@#@$#%$' mapper = dict.fromkeys(i for i in range(sys.maxunicode) if chr(i) in '@#$') print(s.translate(mapper)) มันทำงานได้ตามที่คาดไว้ อย่างไรก็ตามโปรแกรมเดียวกันเมื่อรันใน Python 3.4 และ Python 3.5 ให้ความแตกต่างกันมาก รหัสในการคำนวณเวลาคือ python3 -m timeit -s "import sys;s = 'abcde12345@#@$#%$'*1000 ; mapper = dict.fromkeys(i for i in range(sys.maxunicode) if chr(i) in '@#$'); …