5: List Processing

5-1: Basic List Operation

** ถ้าใช้งานบนมือถือหรือ tablet แนะนำให้ใช้ Chrome หรือ Safari เท่านั้น **

แบบฝึกหัด 5-1 ข้อที่ 1

มีข้อมูลทาง input สามบรรทัด บรรทัดแรกเป็นรายการของรหัสสินค้า บรรทัดที่สองเป็นรายการของราคา (มีจำนวนข้อมูลเท่ากับของบรรทัดแรก โดยสินค้าชิ้นที่ตำแหน่ง i ก็มีราคาที่ตำแหน่ง i) บรรทัดสุดท้ายเป็นรหัสสินค้าที่อยากรู้ว่าราคาเท่าไร ถ้าเป็นรหัสที่ไม่มีอยู่ ให้แสดง Not found

___inp___ = ["A100 A200 A300 A400", "20.5 50.0 35.0 65.0", "A300"] def input(): t = ___inp___.pop(0) ___inp___.append(t) return t prod_ids = input().split() prices = input().split() qid = input() found = False for i in range(len(prod_ids)): if qid == prod_ids[i]: found = True break if found: print(prices[i]) else: print("Not found") for v in [["A100 A200 A300", "20.5 50.0 35.0", "A300"], ["A100 A200 A300", "20.5 50.0 35.0", "A999"]]: Ex().has_equal_output(pre_code="___inp___[:] =" + str(v), incorrect_msg = "ผิด เช่น กรณีอินพุตเป็น " + str(v))
มีลิสต์หนึ่งเก็บรหัสสินค้า อีกลิสต์เก็บราคา นำรหัสสินค้าที่อยากรู้ราคาไปค้นในลิสต์รหัสสินค้า (ด้วย for) พบที่ index ใด ก็นำ index นั้นไปหยิบราคาในช่อง index เดียวกันของลิสต์ราคา
แบบฝึกหัด 5-1 ข้อที่ 2

ลักษณะข้อมูลเหมือนข้อที่แล้ว แต่บรรทัดที่สามจะเป็นราคา แล้วอยากให้หาว่ามีรหัสสินค้าอะไรบ้างที่ราคาไม่เกินราคาที่กำหนดในบรรทัดที่สาม โดยให้แสดงรหัสสินค้าเรียงตามที่เขียนในบรรทัดแรก แสดงบรรทัดละรหัส ถ้าไม่มีรหัสสินค้าใดเลย ให้แสดง Not found (จากตัวอย่างที่แสดง จะแสดงรหัสสินค้า A100, A200 และ A300 บรรทัดละรหัส)

___inp___ = ["A100 A200 A300 A400", "20.5 50.0 35.0 65.0", "55.0"] def input(): t = ___inp___.pop(0) ___inp___.append(t) return t prod_ids = input().split() x = input().split() prices = [0.0]*len(x) for i in range(len(x)): prices[i] = float(x[i]) qprice = float(input()) found = False for i in range(len(prod_ids)): if prices[i] <= qprice: print(prod_ids[i]) found = True if not found: print("Not found") for v in [["A100 A200 A300 A400", "20.5 50.0 35.0 65.0", "35.0"], ["A100 A200 A300 A400", "20.5 50.0 35.0 65.0", "10.0"]]: Ex().has_equal_output(pre_code="___inp___[:] =" + str(v), incorrect_msg = "ผิด เช่น กรณีอินพุตเป็น " + str(v))
มีลิสต์หนึ่งเก็บรหัสสินค้า อีกลิสต์เก็บราคา นำราคาบรรทัดที่สาม ไปลุยเปรียบเทียบในลิสต์ราคา (ด้วย for) พบที่ index ใดที่มีราคาเข้าเกณฑ์ ก็นำ index นั้นไปหยิบรหัสสินค้าในช่อง index เดียวกันของลิสต์รหัสสินค้าไปแสดง