ฉันกำลังเล่นกับความเข้าใจในรายการและฉันเจอตัวอย่างข้อมูลเล็ก ๆ น้อย ๆ นี้ในเว็บไซต์อื่น:
return ''.join([`num` for num in xrange(loop_count)])
ฉันใช้เวลาสองสามนาทีในการพยายามจำลองฟังก์ชัน (โดยการพิมพ์) ก่อนที่จะรู้ว่า`num`
บิตนั้นพัง
การปิดคำสั่งในอักขระเหล่านั้นทำอะไร? จากสิ่งที่ฉันเห็นมันเทียบเท่ากับ str (num) แต่เมื่อฉันหมดเวลา:
return ''.join([str(num) for num in xrange(10000000)])
ใช้เวลา 4.09 วินาทีในขณะที่:
return ''.join([`num` for num in xrange(10000000)])
ใช้เวลา 2.43 วินาที
ทั้งสองให้ผลลัพธ์ที่เหมือนกัน แต่อย่างใดอย่างหนึ่งช้ากว่ามาก เกิดขึ้นที่นี่คืออะไร?
แก้ไข:ผิดปกติ ... repr()
ให้ผลลัพธ์ช้ากว่า`num`
. 2.99s เทียบกับ 2.43s ใช้ Python 2.6 (ยังไม่ได้ลอง 3.0)