8: Basic Dict

8-1: Dict: Key-Value Pairs

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

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

จงสร้างตัวแปรชือ d236 เป็นดิกมีคู่ key, value 3 คู่ คือ "TWO", "THREE" และ "SIX" เป็นคีย์ มีค่าที่คู่กันคือ "สอง", "สาม" และ "หก" ตามลำดับ (เขียนการสร้างตัวแปรแค่บรรทัดเดียว)

d236 = {"TWO": "สอง", "THREE": "สาม", "SIX": "หก"} var = "d236" obj = Ex().check_object(var, missing_msg = "ไม่พบตัวแปร " + var) obj.has_equal_value(expr_code="type("+var+")", incorrect_msg=var + " ต้องเป็น dict") obj.has_equal_value(incorrect_msg = "ยังตั้งค่าในดิกไม่ถูกต้อง")
แบบฝึกหัด 8-1 ข้อที่ 2

โปรแกรมนี้มีดิกชื่อ color ที่ตั้งค่าให้เรียบร้อยแล้ว จากนั้นรับชื่อย่อวันจากอินพุต เพื่อแสดงสีประจำวันที่รับมา จงเติมคำสั่งที่ ??? เพื่อให้ทำงานตามที่ต้องการ

___inp___ = ["MO"] def input(): return ___inp___[0] color = {"SU": "Red", "MO": "Yellow", "TU": "Pink", "WE": "Green", "TH": "Orange", "FR": "Blue", "SA": "Purple" } day = input() print( ??? ) color = {"SU": "Red", "MO": "Yellow", "TU": "Pink", "WE": "Green", "TH": "Orange", "FR": "Blue", "SA": "Purple" } day = input() print( color[day] ) import random c = ["SU", "MO", "TU", "WE", "TH", "FR", "SA"] for k in range(7): v = c[k] Ex().has_equal_output(pre_code="___inp___[0] = '" + c[k] + "'", incorrect_msg = "ผิด กรณีอินพุตเป็น " + c[k])
ใช้ ชื่อดิก[ คีย์ ] ในการหยิบค่าที่คู่กับคีย์ในดิกมาใช้งาน
แบบฝึกหัด 8-1 ข้อที่ 3

โปรแกรมนี้มีตัวแปร student1 เป็นดิกเก็บรายละเอียดของนักเรียนคนหนึ่ง จากนั้นไปอ่านรายละเอียด (ด้วยฟังก์ชัน read_data ที่ไม่ได้เปิดเผยรายละเอียด) ของนักเรียนอีกคนเก็บใน student2 (ซึ่งจัดเก็บในรูปแบบเดียวกับ student1) จงเขียนคำสั่งแสดงปีเกิดของ student2

__Data__ = {"ID": "5330000021", "Name": "Pimchanok L.", "Birthdate": [30, 9, 1992]} def read_data(): return __Data__ student1 = {"ID": "5830000021", "Name": "Pranpriya M.", "Birthdate": [27, 3, 1997]} # มีรูปแบบการจัดเก็บเหมือน student1 student2 = read_data() # แสดงปีเกิดของ student2 print( ??? ) student2 = read_data() print( student2["Birthdate"][2] ) import random byear = random.randint(1960, 1990) Ex().has_equal_output(pre_code="__Data__['Birthdate'][2] = " + str(byear), incorrect_msg = "ยังไม่ถูกต้อง")
คีย์ที่ต้องใช้คือ "Birthdate" ซึ่งได้เป็นลิสต์ ต้องหยิบช่องอินเด็กซ์ 2 จึงได้ปีเกิดที่ต้องการ