0Pricing
Competitive Programming Academy · บทเรียน

สร้างอาร์เรย์อย่างรวดเร็วด้วยนิพจน์สร้างข้อมูล

อ่านและจัดรูปข้อมูลเข้าในบรรทัดเดียว

สร้างอาร์เรย์อย่างรวดเร็วด้วยนิพจน์สร้างข้อมูล เป็นบทเรียน Competitive Programming Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Competitive Programming Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Competitive Programming Academy มีบทเรียนทั้งหมด 4 บทเรียน

สร้างรายการในบรรทัดเดียว

การสร้างรายการด้วยนิพจน์แบบย่อจะสร้างรายการจากลูปด้วยนิพจน์เดียว สั้นกว่า เร็วกว่า และเป็นรูปแบบมาตรฐานในการจัดรูปข้อมูลสำหรับการแข่งขัน

squares = [i * i for i in range(5)]

รูปแบบพื้นฐาน

รูปแบบคือ [expr for item in iterable] นิพจน์ทางซ้ายจะทำงานหนึ่งครั้งต่อสมาชิกแต่ละรายการที่ลูปส่งออกมา

doubles = [x * 2 for x in nums]

อ่านบรรทัดจำนวนเต็ม

รูปแบบบรรทัดที่พบบ่อยที่สุดในการแข่งขันคือ แยกข้อมูลขาเข้าแล้วแปลงโทเค็นแต่ละรายการ ขั้นตอนนี้แปลงข้อความเป็นจำนวนเต็มได้อย่างอ่านเข้าใจง่ายในครั้งเดียว

nums = [int(x) for x in input().split()]

map() ทำหน้าที่เดียวกัน

map(int, ...) จะนำ int ไปใช้กับโทเค็นแต่ละรายการ ครอบด้วย list(...) เพื่อสร้างค่าเหล่านั้นขึ้นมาเก็บไว้สำหรับใช้ซ้ำ

nums = list(map(int, input().split()))

กรองไปพร้อมกับการสร้าง

เพิ่มเงื่อนไข ifไว้ท้ายสุด เพื่อเก็บเฉพาะรายการที่ผ่านเงื่อนไข ในที่นี้จะเหลือเฉพาะจำนวนคู่ระหว่างการสร้างเท่านั้น

evens = [x for x in nums if x % 2 == 0]

แปลงและกรองพร้อมกัน

คุณสามารถแปลงและกรองได้พร้อมกัน โดยเปลี่ยนรายการที่เก็บไว้ทางด้านซ้าย ขณะคัดกรองด้วย if ที่อยู่ท้ายสุด

out = [x * x for x in nums if x > 0]

สร้างอาร์เรย์ที่เติมศูนย์

ต้องการอาร์เรย์ขนาดคงที่หรือไม่ [0] * n จะสร้างเลขศูนย์จำนวน n ตัวได้ทันที เหมาะอย่างยิ่งสำหรับตัวนับและตาราง DP

dp = [0] * n

ระวังลิสต์ด้านในที่ซ้ำกัน

ใช้การสร้างแบบกระชับสำหรับตารางสองมิติ [[0] * c for _ in range(r)] จะสร้างแถวที่เป็นอิสระต่อกัน ส่วน [[0] * c] * r จะแชร์แถวเดียวกัน

grid = [[0] * c for _ in range(r)]

หาดัชนีด้วย enumerate

เมื่อคุณต้องการตำแหน่งด้วย ให้วนซ้ำด้วย enumerate เพื่อให้แต่ละรอบได้ทั้งดัชนีและค่าอย่างเป็นระเบียบ

pairs = [(i, v) for i, v in enumerate(nums)]

อ่านเมทริกซ์ทั้งชุด

รวมการอ่านข้อมูลเข้ากับการวนซ้ำ เพื่อดึงแถว r แถวของตัวเลขเข้ามาพร้อมกัน แล้วสร้างตารางทั้งหมดด้วยโค้ดสั้น ๆ สองบรรทัด

grid = [list(map(int, input().split()))
        for _ in range(r)]

รูปแบบเซตและพจนานุกรม

ไวยากรณ์เดียวกันนี้ใช้สร้างเซตและพจนานุกรมได้ โดยใช้วงเล็บปีกกา {x for x in nums} จะตัดค่าที่ซ้ำกันออก และคู่ key:value จะสร้างแผนที่

seen = {x for x in nums}

ตรวจสอบอย่างรวดเร็ว

เลือกสำนวนการเขียนที่ใช้อ่านบรรทัดซึ่งมีจำนวนเต็มคั่นด้วยช่องว่าง

ทบทวน: สร้างได้อย่างรวดเร็ว

ตอนนี้คุณสามารถสร้าง กรอง และปรับรูปทรงของอาร์เรย์ได้ในบรรทัดเดียว รวมทั้งอ่านเมทริกซ์ทั้งหมดได้อย่างรวดเร็ว การสร้างแบบกระชับช่วยให้การแยกวิเคราะห์ข้อมูลนำเข้าสั้นและปราศจากข้อผิดพลาด 💡

คำถามที่พบบ่อย

บทเรียน “สร้างอาร์เรย์อย่างรวดเร็วด้วยนิพจน์สร้างข้อมูล” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “สร้างอาร์เรย์อย่างรวดเร็วด้วยนิพจน์สร้างข้อมูล” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Competitive Programming Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Competitive Programming Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “สร้างอาร์เรย์อย่างรวดเร็วด้วยนิพจน์สร้างข้อมูล”

อ่านและจัดรูปข้อมูลเข้าในบรรทัดเดียว คุณปฏิบัติ Competitive Programming Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Competitive Programming Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Competitive Programming Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “สร้างอาร์เรย์อย่างรวดเร็วด้วยนิพจน์สร้างข้อมูล” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Competitive Programming Academy นี้ได้ไหม

ได้ บทเรียน Competitive Programming Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

  1. ลิสต์ การจัดทำดัชนี และการตัดช่วงสำหรับ CP
  2. สร้างอาร์เรย์อย่างรวดเร็วด้วยนิพจน์สร้างข้อมูล
  3. ค่าต่ำสุด ค่าสูงสุด ผลรวม และยอดสะสม
  4. ค้นหาดัชนี ไม่ใช่แค่ค่า
← กลับไปที่ Competitive Programming Academy