Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python
Python
  1. Python: หาองค์ประกอบที่มีความถี่อยู่ในช่วงเปอร์เซ็นต์ที่กำหนด

    บทนำ โจทย์: จากลิสต์ข้อมูล หาองค์ประกอบที่มีความถี่ (frequency) อยู่ในช่วงเปอร์เซ็นต์ที่กำหนด (start% ถึง end%) ใช้ collections.Counter นับความถี่ แล้วคำนวณเปอร์เซ็นต์ ตัวอย่างโค้ด from collections import Counter my_list = [56, 34, 78, 90, 11, 23, 6, 56, 79, 90] start, end = 13, 60 # ช่วงเปอร์เซ

  2. Python Pandas: เพิ่มคอลัมน์ศูนย์ (Zero Column) ให้ DataFrame

    บทนำ การเพิ่มคอลัมน์ใหม่ที่มีค่าเป็นศูนย์ (0) ทุกแถว ใน Pandas DataFrame ทำได้ง่ายด้วยการ assignment ตรงไปตรงมา วิธีพื้นฐาน import pandas as pd df = pd.DataFrame({ Student: [Jack, Robin, Ted, Marc, Scarlett, Kat, John], Result: [Pass, Fail, Pass, Fail, Pass, Pass, Pass], Roll Number:

  3. Python: จับกลุ่มสตริงติดต่อกันในลิสต์ (Group Contiguous Strings)

    บทนำ เมื่อมีลิสต์ผสมประเภทข้อมูล (mixed types) ต้องการจับกลุ่มเฉพาะสตริงที่ติดต่อกัน (contiguous strings) ให้เป็นสับรายการ แล้วคืนลิสต์ที่ผสมระหว่างค่าเดี่ยวและสับรายการสตริง ตัวอย่างโค้ด from itertools import groupby def is_string(elem): ตรวจสอบว่าเป็นสตริงหรือไม่ return isinstance(elem,

  4. Python: สร้าง Permutation แบบมีการซ้ำ (Permutation with Repetition)

    บทนำ โค้ดตัวอย่างสาธิตการสร้าง permutation แบบมีการซ้ำ (repetition allowed) ของตัวอักษรในสตริง ความยาวของ permutation เท่ากับความยาวสตริงต้นทาง อัลกอริทึม: Recursive Backtracking สร้างทุกความเป็นไปได้โดยวางตัวอักษรแต่ละตัวในแต่ละตำแหน่ง แบบ recursive โค้ดต้นฉบับ def to_string(my_list): return

  5. Python Pandas: ดูชนิดข้อมูลของคอลัมน์ด้วย info()

    บทนำ เมธอด info() ของ DataFrame แสดงข้อมูลสรุปครบถ้วน: จำนวนแถว, คอลัมน์, ชนิดข้อมูล (dtype), ค่า non-null, และ memory usage เหมาะสำหรับการสำรวจข้อมูลเบื้องต้น (EDA) ตัวอย่างโค้ด import pandas as pd df = pd.DataFrame({ Student: [Jack, Robin, Ted, Marc, Scarlett, Kat, John], Roll Number: [

  6. Python Pandas: เลือกคอลัมน์ตามชนิดข้อมูลด้วย select_dtypes()

    บทนำ เมธอด select_dtypes() ช่วยกรองคอลัมน์ใน DataFrame ตามชนิดข้อมูล (dtype) ได้อย่างสะดวก ใช้พารามิเตอร์ include หรือ exclude ตัวอย่างโค้ด import pandas as pd # สร้าง DataFrame หลายชนิดข้อมูล df = pd.DataFrame({ Student: [Jack, Robin, Ted, Marc, Scarlett, Kat, John], Roll Number: [5, 10,

  7. Python Pandas: เปลี่ยนชื่อคอลัมน์หลายคอลัมน์พร้อมกันด้วย Dictionary

    บทนำ เมธอด rename() ของ DataFrame รองรับการเปลี่ยนชื่อหลายคอลัมน์พร้อมกันโดยส่ง dictionary ไปที่พารามิเตอร์ columns โดย key = ชื่อเก่า, value = ใหม่ ตัวอย่างโค้ด ใหม่ rename_dict = { Car: Car Name, Cubic Capacity: CC, Reg Price: Registration Price, Units Sold: Units Purchased } #

  8. Python: นับความถี่ของความยาวแถวใน Matrix (List of Lists)

    บทนำ เมื่อมี matrix (list of lists) ที่แต่ละแถวอาจมีความยาวต่างกัน ต้องการนับว่าแต่ละความยาวเกิดขึ้นกี่ครั้ง ใช้ dictionary นับความถี่ (frequency count) ตัวอย่างโค้ด my_list = [[42, 24, 11], [67, 18], [20], [54, 10, 25], [45, 99]] print(Matrix:, my_list) # นับความถี่ความยาวแถว freq = {} for row i

  9. Python Pandas: เข้าถึงค่าสุดท้ายของ Series ด้วย iat

    บทนำ เมธอด iat[] ใน Pandas ใช้เข้าถึงค่าเดียว (scalar) โดยตำแหน่ง integer (position-based) เร็วกว่า iloc[] และ loc[] สำหรับการเข้าถึงค่าเดี่ยว รองรับ negative indexing ตัวอย่างโค้ด import pandas as pd # สร้าง Series data = pd.Series([10, 20, 5, 65, 75, 85, 30, 100]) print(Series:) print(data) #

  10. Python: สร้าง Nested List ที่มีค่าซ้ำตามจำนวน Index

    บทนำ โปรแกรมสาธิตการสร้าง nested list โดยแต่ละสับรายการมีค่าเท่ากับ index+1 ซ้ำ index+1 ครั้ง ตัวอย่างโค้ด my_list = [11, 25, 36, 24] print(ลิสต์ต้นทาง:, my_list) for i in range(len(my_list)): # สร้างลิสต์ใหม่: ค่า i+1 ซ้ำ i+1 ครั้ง my_list[i] = [i + 1 for _ in range(i + 1)] print(ผลลัพธ

  11. Python: แปลง Nested List เป็น Tuple List (Flatten)

    บทนำ Flatten nested list ที่มีโครงสร้างลึกและซับซ้อน ให้กลายเป็นลิสต์แบน (flat list) ของ tuples โดยใช้ recursion และ isinstance() ตรวจสอบประเภท โค้ดต้นฉบับ (Recursive) def convert_nested_tuple(my_list): for elem in my_list: if isinstance(elem, list): convert_nested_tuple(el

  12. Python Pandas: Stack คอลัมน์ Single-Level ด้วย stack()

    บทนำ เมธอด stack() ใน Pandas ใช้ พับ คอลัมน์ (columns) ให้กลายเป็นแถว (rows) สร้าง MultiIndex ในแถว เหมาะสำหรับเปลี่ยนข้อมูลจาก wide format เป็น long format ตัวอย่างพื้นฐาน import pandas as pd # DataFrame คอลัมน์เดี่ยว (single-level columns) df = pd.DataFrame( [[10, 15], [20, 25], [30, 35], [

  13. Python: หาช่วงติดต่อกันของค่า K ที่ยาวอย่างน้อย N ตัว

    บทนำ โจทย์: ในลิสต์ หาช่วงติดต่อกัน (consecutive range) ที่มีค่าเท่ากับ K และมีความยาวมากกว่าหรือเท่ากับ N คืนค่าเป็น tuple (start_index, end_index) อัลกอริทึม: Single Pass with State Tracking ใช้ตัวแปรติดตามสถานะ: previous, beg (เริ่มต้น), end (สิ้นสุด) ตัวอย่างโค้ด = n: result.append((be

  14. Python Pandas: เพิ่มแถวข้อมูลจากลิสต์เข้า DataFrame ด้วย append()

    บทนำ หมายเหตุสำคัญ: DataFrame.append() ถูก deprecated منذ Pandas 1.4.0 และถูกลบใน Pandas 2.0 ควรใช้ pd.concat() หรือ loc[] แทน วิธีเก่า (Deprecated): append() import pandas as pd # สร้าง DataFrame Team = [ [India, 1, 100], [Australia, 2, 85], [England, 3, 75], [New Zealand, 4, 65]

  15. Python: ลบองค์ประกอบที่ไม่เพิ่มขึ้น (Non-Increasing Elements) จากลิสต์

    บทนำ โค้ดตัวอย่างสาธิตการกรองลิสต์ให้เหลือเฉพาะลำดับที่ เพิ่มขึ้นหรือเท่ากับ (non-decreasing) จากค่าแรก แต่โค้ดต้นฉบับมีบั๊ก: เริ่มจาก my_result = [my_list[0]] แล้ววนลูป for elem in my_list รวมตัวแรกอีกครั้ง ทำให้ค่าแรกซ้ำ โค้ดต้นฉบับ (มีบั๊ก) = my_result[-1]: my_result.append(elem) print(

  16. Python: หา Rank (อันดับ) ของแต่ละองค์ประกอบในลิสต์

    บทนำ การหา Rank หรืออันดับของแต่ละค่าในลิสต์ หมายถึงการกำหนดตัวเลขอันดับ โดยค่าน้อยสุด = อันดับ 1 ค่าที่เท่ากันจะได้อันดับเฉลี่ย (fractional ranking) โค้ดตัวอย่างใช้อัลกอริทึม O(n²) แบบ naive โค้ดต้นฉบับ (O(n²)) def find_rank_elem(my_list): result = [0] * len(my_list) for i in range(len(my

  17. Python Pandas: หาคอลัมน์ร่วมของสอง DataFrame ด้วย intersection()

    บทนำ เมธอด intersection() ของ Pandas Index ใช้หาคอลัมน์ที่ซ้ำกันระหว่างสอง DataFrame ทำงานเหมือน & operator แต่เป็นเมธอดที่อ่านง่ายและชัดเจนกว่า ตัวอย่างโค้ด import pandas as pd # DataFrame 1 df1 = pd.DataFrame({ Car: [Bentley, Lexus, Tesla, Mustang, Mercedes, Jaguar], Cubic_Capacity: [20

  18. Python: แยกตัวอักษรติดต่อกันที่เหมือนกันในสตริง (Group Consecutive)

    บทนำ เมื่อต้องการแยกสตริงเป็นกลุ่มของตัวอักษรที่ติดต่อกันและเหมือนกัน (เช่น aaabbb → [aaa, bbb]) ใช้ itertools.groupby() ซึ่งเป็นเครื่องมือมาตรฐานสำหรับงานนี้ หลักการของ groupby() groupby(iterable, key=None) ใหม่กลุ่ม (key, group) สำหรับแต่ละกลุ่มต่อเนื่องที่มีค่า key เท่ากัน ตัวอย่างโค้ด from it

  19. Python: หาคู่/กลุ่ม K ตัวที่มีผลรวมเท่ากับ N (Cartesian Product)

    บทนำ โจทย์: จากลิสต์ตัวเลข หาคอมบิเนชัน K ตัว (ซ้ำได้) ที่มีผลรวมเท่ากับ N ใช้ itertools.product สร้าง Cartesian product แล้วกรองด้วย sum() หลักการ product(my_list, repeat=K): สร้างทุกค่าที่เป็นไปได้ของ K ตัว (允許重複) ตรวจสอบ sum(combo) == N เก็บผลลัพธ์ที่ผ่านเกณฑ์ ตัวอย่างโค้ด from itertoo

  20. Python: หาตัวเลขที่ไม่ซ้ำและไม่เหมือนกันระหว่างสองจำนวน (Symmetric Difference)

    บทนำ โจทย์: หาตัวเลข (digit) ที่ปรากฏในจำนวนหนึ่งแต่ไม่ปรากฏในอีกจำนวนหนึ่ง (symmetric difference) โดยแสดงผลเรียงจากมากไปน้อย หลักการ: ใช้ Set Symmetric Difference set1.symmetric_difference(set2) หรือ set1 ^ set2 คืนสมาชิกที่อยู่ในเซตใดเซตหนึ่งเพียงอย่างเดียว ตัวอย่างโค้ด def distinct_uncommon_di

Total 9001 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:350/451  20-คอมพิวเตอร์/Page Goto:1 344 345 346 347 348 349 350 351 352 353 354 355 356