0Pricing
Coding Interview Prep · บทเรียน

ส่งข้อมูลออกเป็นชุดอย่างถูกวิธี

เก็บข้อมูลในลิสต์และใช้ 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. ศึก input() ปะทะ sys.stdin
  2. แยกตัวเลขจำนวนมากในบรรทัดเดียว
  3. ส่งข้อมูลออกเป็นชุดอย่างถูกวิธี
  4. อ่าน N บรรทัดและกรณีขอบ
← กลับไปที่ Coding Interview Prep