ส่งข้อมูลออกเป็นชุดอย่างถูกวิธี
เก็บข้อมูลในลิสต์และใช้ join เพื่อพิมพ์อย่างรวดเร็ว
ส่งข้อมูลออกเป็นชุดอย่างถูกวิธี เป็นบทเรียน Coding Interview Prep ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Coding Interview Prep และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Coding Interview Prep มีบทเรียนทั้งหมด 4 บทเรียน
ข้อมูลขาออกก็ช้าได้เช่นกัน
เช่นเดียวกับการอ่าน การเขียนก็สำคัญ การเรียก print() หลายพันครั้งจะล้างบัฟเฟอร์ซ้ำ ๆ และอาจใช้เวลาเกินกำหนดโดยไม่รู้ตัว
รวบรวมก่อน แล้วค่อยแสดงผล
วิธีแก้คือรวบรวมคำตอบไว้ในรายการก่อน แล้วส่งออกด้วยการเขียนเพียงครั้งเดียวเมื่อเสร็จสิ้น
out = []เพิ่มคำตอบแต่ละรายการ
ภายในลูป ให้เพิ่มผลลัพธ์แต่ละรายการลงในรายการด้วย append แทนการแสดงผลทันที
out.append(str(answer))ขอเฉพาะสตริง
join ทำงานกับข้อความ ดังนั้นให้แปลงตัวเลขเป็นสตริงก่อนจัดเก็บ หรือแปลงในเวลาที่เรียก join
out.append(str(x))รวมเป็นบล็อกเดียว
เชื่อมรายการเข้าด้วยกันด้วย join โดยใช้การขึ้นบรรทัดใหม่เพื่อให้คำตอบแต่ละรายการอยู่คนละบรรทัด
result = "\n".join(out)แสดงผลทั้งหมดในครั้งเดียว
ตอนนี้ print(result) เพียงครั้งเดียวก็ส่งคำตอบทั้งหมดออกไปได้ เร็วกว่าการแสดงผลเล็ก ๆ หลายครั้งมาก
print("\n".join(out))ข้าม str ด้วยตัวสร้างค่า
คุณสามารถแปลงค่าไปพร้อมกันได้ โดยส่งตัวสร้างค่าจากการเรียก str() เข้าไปใน join โดยตรง ไม่ต้องมีขั้นตอนแยกต่างหาก
print("\n".join(str(x) for x in out))ข้อมูลขาออกคั่นด้วยช่องว่าง
ต้องการให้ค่าอยู่ในบรรทัดเดียวกันหรือไม่ ให้ใช้ ช่องว่างในการ join แทนการขึ้นบรรทัดใหม่ เพื่อแสดงค่าเรียงเคียงกัน
print(" ".join(map(str, row)))ใช้ sys.stdout เพื่อความเร็วที่มากขึ้น
หากต้องการข้อมูลขาออกที่เร็วที่สุด ให้เขียนโดยตรงด้วย sys.stdout.write ซึ่งข้ามการจัดรูปแบบของ print()
import sys
sys.stdout.write(result)อย่าลืมอักขระขึ้นบรรทัดใหม่ท้ายข้อมูล
sys.stdout.write จะไม่เพิ่มการขึ้นบรรทัดใหม่ ดังนั้นให้ append อักขระขึ้นบรรทัดใหม่ด้วยตัวเอง หากระบบตรวจคาดหวังให้มีอักขระนั้น
sys.stdout.write(result + "\n")เมื่อแสดงผลไม่กี่ครั้งก็ใช้ได้
หากคุณแสดงผลเพียงหนึ่งหรือสองบรรทัด การใช้ print() แบบปกติก็เพียงพอ ควรรวมข้อมูลเป็นชุดเมื่อจำนวนคำตอบมีมาก
ตรวจสอบอย่างรวดเร็ว
ทำไมจึงควรพักเก็บข้อมูลขาออกไว้ก่อน
ทบทวน: รวมข้อมูลขาออกเป็นชุด
คุณได้เรียนรู้การเก็บสะสมคำตอบไว้ในรายการ แล้วส่งออกด้วยการ join และแสดงผลเพียงครั้งเดียว แนวคิดเดียวกับการอ่านข้อมูลอย่างรวดเร็ว แต่ประยุกต์ใช้กับการเขียน 🖨️
คำถามที่พบบ่อย
บทเรียน “ส่งข้อมูลออกเป็นชุดอย่างถูกวิธี” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ส่งข้อมูลออกเป็นชุดอย่างถูกวิธี” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Coding Interview Prep ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Coding Interview Prep มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ส่งข้อมูลออกเป็นชุดอย่างถูกวิธี”
เก็บข้อมูลในลิสต์และใช้ join เพื่อพิมพ์อย่างรวดเร็ว คุณปฏิบัติ Coding Interview Prep ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Coding Interview Prep หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Coding Interview Prep บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “ส่งข้อมูลออกเป็นชุดอย่างถูกวิธี” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Coding Interview Prep นี้ได้ไหม
ได้ บทเรียน Coding Interview Prep ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ศึก input() ปะทะ sys.stdin
- แยกตัวเลขจำนวนมากในบรรทัดเดียว
- ส่งข้อมูลออกเป็นชุดอย่างถูกวิธี
- อ่าน N บรรทัดและกรณีขอบ