คำถามติดแท็ก python-internals

Python ทำงานอย่างไรภายใต้ประทุน? ใช้สำหรับคำถามที่เกี่ยวข้องกับ (เช่น) การตัดสินใจในการออกแบบและโครงสร้างข้อมูลภายในและอัลกอริทึมที่ใช้

4
เหตุใดการคัดลอกรายการแบบสับจึงช้ากว่ามาก
การคัดลอกrange(10**6)รายการแบบสับสิบครั้งใช้เวลาประมาณ 0.18 วินาที: (นี่คือการรันห้าครั้ง) 0.175597017661 0.173731403198 0.178601711594 0.180330912952 0.180811964451 การคัดลอกรายการที่ไม่ได้สับสิบครั้งใช้เวลาประมาณ 0.05 วินาที: 0.058402235973 0.0505464636856 0.0509734306934 0.0526022752744 0.0513324916184 นี่คือรหัสทดสอบของฉัน: from timeit import timeit import random a = range(10**6) random.shuffle(a) # Remove this for the second test. a = list(a) # Just an attempt to "normalize" the list. for _ in range(5): …

4
ทำไมฉันถึงได้รับการทำซ้ำหลายครั้งเมื่อเพิ่มและลบออกจากชุดในขณะที่วนซ้ำ
พยายามที่จะเข้าใจ Python for-loop ฉันคิดว่านี่จะให้ผลลัพธ์{1}สำหรับการวนซ้ำหนึ่งครั้งหรือแค่ติดอยู่ในการวนซ้ำไม่สิ้นสุดขึ้นอยู่กับว่ามันทำซ้ำใน C หรือภาษาอื่น ๆ หรือไม่ แต่จริงๆแล้วมันไม่ได้ทำ >>> s = {0} >>> for i in s: ... s.add(i + 1) ... s.remove(i) ... >>> print(s) {16} ทำไมถึงทำซ้ำ 16 ครั้ง? ผลลัพธ์อยู่ที่ไหน{16}มาจากไหน นี่คือการใช้ Python 3.8.2 เมื่อวันที่ pypy {1}มันทำให้ผลที่คาดหวัง
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.