Dictionaries (พจนานุกรม)
Contents
Dictionaries (พจนานุกรม)#
ในบทนี้ คุณจะได้เรียนรู้เกี่ยวกับโครงสร้างข้อมูล Dictionary ในภาษา Python เราจะแนะนำให้คุณรู้จักกับ Dictionary การประกาศและการใช้งาน นอกจากนี้ เรายังจะแนะนำการใช้งานเมธอดและ built-in functions ของ Dictionary และตัวอย่างการใช้งานกับการเขียนโปรแกรมในรูปแบบต่างๆ ในภาษา Python
Ref:
Dictionaries คือ?#
\(\qquad\) Dictionary เป็นข้อมูลประเภท Collections (หรือ Container) เช่นเดียวกับ List แต่จัดเก็บชุดข้อมูลแบบไม่เรียงลำดับ (non-sequential collections) โดยข้อมูลที่จัดเก็บอยู่ในรูปแบบของ Key-Value เป็นคู่ๆ (เทียบได้กับ HashMap ในภาษา Java หรือ โครงสร้างข้อมูลยอดฮิตแบบ JSON)
Key: (คีย์) ระบุชื่อของข้อมูลสำหรับอ้างอิง,
Value: (แวลยูว) เป็นค่าของข้อมูล (information) ที่ต้องการเก็บ
มักจะใช้เก็บข้อมูลซึ่งมีขนาดใหญ่และจำเป็นต้องมีการค้นหาข้อมูล (ข้อมูลชนิดนี้จัดเก็บในรูปแบบของ Key-Value เป็นคู่ๆ เหมือนพจนานุกรมจริงๆ สอดคล้องกับชื่อ Dictionary !) โดย Key เป็นออบเจกต์/ข้อมูลที่แก้ไขไม่ได้ (Immutable type) เช่น สตริง (str) ตัวเลข(int, float) และทูเพิล (tuple) ดังนั้น คุณไม่สามารถใช้ออบเจกต์/ข้อมูลที่แก้ไขได้ (Mutable type) เช่น ลิสต์ (list) Dictionary (dict) เป็น Key ได้ (Dictionary เป็นชนิดข้อมูลที่แก้ไขได้) ในทางกลับกัน Value เป็นออบเจกต์/ข้อมูลชนิดใดก็ได้ จะแก้ไขได้หรือไม่ได้ก็ได้
รูปด้านล่างเปรียบเทียบระหว่าง List กับ Dictionary
List ใช้ Index หรือเลขดัชนีในการเข้าถึงข้อมูล แต่ Dictionary ใช้ Key ในการเข้าถึงข้อมูล โดย Value เป็นค่าข้อมูลที่สอดคล้องกับ Key นั้นๆ
ตัวอย่างของ Dictionary (dict
):
# สร้างตัวแปร dictionary
DicA = {"key1": 1, "key2": "2", "key3": [3, 3, 3], "key4": (4, 4, 4), ('key5'): 5, 9.9: '๙', (0, 1): 6}
DicA
{'key1': 1,
'key2': '2',
'key3': [3, 3, 3],
'key4': (4, 4, 4),
'key5': 5,
9.9: '๙',
(0, 1): 6}
type(DicA)
dict
len(DicA)
7
ตัวแปร DicA
ข้างต้นเป็นข้อมูลชนิด dict
มีข้อมูล (สมาชิก) อยู่ในรูป key: value เป็นคู่ๆ ทั้งหมด 7 ข้อมูล โดย key 5 ตัวแรกเป็นชนิด str key ถัดมาเป็นตัวเลขชนิด float และ tuple ตามลำดับ
key ของ dictionary เป็นสตริง (str) ได้ เราสามารถเข้าถึงข้องมูลได้ด้วย key (เข้าถึงข้อมูลโดยใช้วงเล็บก้ามปู []
เช่นเดียวกับการเข้าถึงโดยใช้เลขดัชนี (index) ของ list)
# เข้าถึงข้อมูลด้วย key (สตริง)
DicA["key1"]
1
key เป็นตัวเลข (int, float) ได้
# เข้าถึงข้อมูลด้วย key (ตัวเลข)
DicA[9.9]
'๙'
key ยังสามารถเป็นออบเจ็กต์ที่ไม่เปลี่ยนรูป (immutable object) เช่น Tuple ก็ได้
# ข้าถึงข้อมูลด้วย key (Tuple)
DicA[(0, 1)]
6
การสร้าง Dictionary#
\(\qquad\) Dictionary ถูกสร้างขึ้นด้วยวงเล็บปีกกาสองอัน { }
(curly braces/brackets) โดยภายในวงเล็บประกอบไปด้วย key และ value เป็นคู่ๆ โดยคั่นแต่ละคู่ด้วยเครื่องหมายโคลอน (colon) :
(ในรูปแบบ key: value
) และคั่นระหว่างสมาชิกด้วยเครื่องหมายคอมม่า (comma) ,
Syntax
{<key>: <value>, <key>: <value>, ...}
dic_var = {
<key>: <value>,
<key>: <value>,
.
.
.
<key>: <value>
}
# สร้าง dictionary
release_year_dict = {"Thriller": "1982", "Back in Black": "1980", \
"The Dark Side of the Moon": "1973", "The Bodyguard": "1992", \
"Bat Out of Hell": "1977", "Their Greatest Hits (1971-1975)": "1976", \
"Saturday Night Fever": "1977", "Rumours": "1977"}
release_year_dict
{'Thriller': '1982',
'Back in Black': '1980',
'The Dark Side of the Moon': '1973',
'The Bodyguard': '1992',
'Bat Out of Hell': '1977',
'Their Greatest Hits (1971-1975)': '1976',
'Saturday Night Fever': '1977',
'Rumours': '1977'}
# สร้าง dictionary
release_year_dict = {"Thriller": "1982",
"Back in Black": "1980",
"The Dark Side of the Moon": "1973",
"The Bodyguard": "1992",
"Bat Out of Hell": "1977",
"Their Greatest Hits (1971-1975)": "1976",
"Saturday Night Fever": "1977",
"Rumours": "1977"}
release_year_dict
{'Thriller': '1982',
'Back in Black': '1980',
'The Dark Side of the Moon': '1973',
'The Bodyguard': '1992',
'Bat Out of Hell': '1977',
'Their Greatest Hits (1971-1975)': '1976',
'Saturday Night Fever': '1977',
'Rumours': '1977'}
Dictionary จัดเก็บข้อมูล (ออบเจกต์) เป็นชุดข้อมูล โดยไม่มีลำดับของข้อมูลที่เก็บ แต่จะเข้าถึง/แสดงข้อมูลแต่ละตัว (หรือ สมาชิก) ด้วย key และค่าที่สอดคล้องกัน (value)
key แต่ละคีย์จะมี value ได้เพียงค่าเดียว (key ต้องไม่ซ้ำกัน) ในขณะที่
key มากกว่าหนึ่งคีย์สามารถมี value ค่าเดียวกันได้ (value ซ้ำกันได้)
key เป็นสตริง (str), ตัวเลข (int, float) หรือ Tuple (ข้อมูล immutable type) ได้เท่านั้น ในขณะที่
value เป็นออบเจกต์ชนิดใดก็ได้ (ข้อมูล immutable, mutable และซ้ำกันก็ได้)
ข้อมูลในตัวแปร release_year_dict
ข้างต้น สามารถสรุปเป็นตารางได้ดังนี้
โดยคอลัมน์แรกเป็น keys
และคอลัมน์ที่สองเป็น values
ที่สอดคล้องกับ keys
คลิ๊กฟังเพลง
นอกจากนี้ยังสามารถสร้างตัวแปร Dictionary โดยใช้ built-in ฟังก์ชัน dict( )
อาร์กิวเมนต์ที่ส่งไปให้ฟังก์ชั่น dict([iterable, **kwarg] )
ต้องจัดเรียง key-value เป็นคู่ๆ เช่น List ของ Tuple
dic_var = dict([
(<key>, <value>),
(<key>, <value>),
.
.
.
(<key>, <value>)
])
ลองสร้าง dictionary release_year_dict
ข้างต้นใหม่อีกครั้งโดยใช้ built-in ฟังก์ชัน dict( )
# เขียนโค้ดด้านล่าง แล้วกด Shift+Enter
release_year_dict
{'Thriller': '1982',
'Back in Black': '1980',
'The Dark Side of the Moon': '1973',
'The Bodyguard': '1992',
'Bat Out of Hell': '1977',
'Their Greatest Hits (1971-1975)': '1976',
'Saturday Night Fever': '1977',
'Rumours': '1977'}
//: # “
Click here for the solution
release_year_dict = dict([('Thriller', '1982'),
('Back in Black', '1980'),
('The Dark Side of the Moon', '1973'),
('The Bodyguard', '1992'),
('Bat Out of Hell', '1977'),
('Their Greatest Hits (1971-1975)', '1976'),
('Saturday Night Fever', '1977'),
('Rumours', '1977')])
release_year_dict
Tip
การเปลี่ยนข้อมูลชนิด dict ให้เป็นข้อมูล list ของ tuple สามารถเขียนได้หลายวิธีเช่น
สร้าง list ใหม่ขึ้นมาโดยใช้ list comprehesion
lst_a = [(k, v) for k, v in release_year_dict.items()]
list_a
สร้าง list ใหม่ขึ้นมาโดยใช้ฟังก์ชั่น
list
lst_a = list(release_year_dict.items())
lst_a
โดยเมธอด items() เป็นเมธอดสำหรับดึงทั้งค่า (values) และคีย์ (keys) ทั้งหมดใน Dictionary ออกมา
ในกรณีที่ key ที่เป็นสตริง เราสามารถสร้างตัวแปร Dictionary โดยส่งเป็นคีย์เวิร์ดกิวเมนต์ (keyword arguments) ให้กับฟังก์ชั่น dict(**kwarg)
ได้
dic_var = dict(
<str-key> = <value>,
<str-key> = <value>,
.
.
.
<str-key> = <value>)
จาก Syntex ข้างต้น ลองสร้าง Dictionary ขึ้นมาอีกตัวที่มีข้อมูลเดียวกันโดยใช้ฟังก์ชัน dict()
แต่ใช้ชื่อตัวแปรใหม่เป็น dic_b
# เขียนโค้ดด้านล่าง แล้วกด Shift+Enter
dic_b =
Cell In [10], line 3
dic_b =
^
SyntaxError: invalid syntax
คำตอบคือ
//:# “
Click here for the solution
dic_b = dict(Thriller='1982',
Back_in_Black='1980',
The_Dark_Side_of_the_Moon='1973',
The_Bodyguard='1992',
Bat_Out_of_Hell='1977',
Their_Greatest_Hits_1971_1975='1976',
Saturday_Night_Fever='1977',
Rumours='1977')
dic_b = dict(Thriller='1982',
Back_in_Black='1980',
The_Dark_Side_of_the_Moon='1973',
The_Bodyguard='1992',
Bat_Out_of_Hell='1977',
Their_Greatest_Hits_1971_1975='1976',
Saturday_Night_Fever='1977',
Rumours='1977')
Keys#
\(\qquad\) เราสามารถเข้าถึงสมาชิกเพื่ออ่านค่าหรืออัพเดทข้อมูลได้โดยผ่าน Key
จากตัวแปร release_year_dict
ที่เราได้ประกาศไปแล้วกัน เราไม่สามารถใช้ Index เข้าถึงข้อมูลได้ ดังตัวอย่างต่อไปนี้
# อ่านค่าโดยใช้เลข index
release_year_dict[0]
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
Cell In [12], line 3
1 # อ่านค่าโดยใช้เลข index
----> 3 release_year_dict[0]
KeyError: 0
เกิดความผิดพลาด KeyError เนื่องจากเลข 0
ไม่ได้ถูกบันทึกเป็น key ใน dict release_year_dict
# อ่านค่าโดยใช้ keys
release_year_dict['Thriller']
'1982'
ค่าที่แสดงเป็นค่าของข้อมูลนี้สอดคล้องกับคีย์ Thriller
!
ในทำนองเดียวกันกับ The Bodyguard
# อ่านค่าโดยใช้ keys
release_year_dict['The Bodyguard']
'1992'
หรือจะอ่านค่าด้วยเมธอด get( )
โดยมี Key เป็นอาร์กิวเมนต์ ซึ่งจะได้ผลลัพธ์เหมือนกับการอ่านค่าโดยตรง
# อ่านค่าโดยใช้เมธอด get()
release_year_dict.get('The Bodyguard')
'1992'
แต่ในกรณีของเมธอด get( )
ถ้า key ที่ส่งเข้าไป ไม่ได้ถูกบันทึกไว้ ไพธอนจะไม่แจ้งข้อผิดพลาด (ไม่เกิด KeyError) แต่จะส่งค่ากลับเป็น None
release_year_dict.get('Bad boy')
print(release_year_dict.get('Bad boy'))
None
กรณีที่ไม่มี key เราสามารถกำหนดให้เมธอด get
จะส่งค่ากลับเป็นอย่างอื่นที่ไม่ใช่ None
ก็ได้ เช่น
release_year_dict.get('Back in Black', -1)
'1980'
release_year_dict.get('Bad boy', -1)
-1
Note
‘None’
คนทั่วๆ ไปมักคิดไปว่า None เป็น Keyword แต่จริงๆ แล้ว None เป็นออบเจ็กต์/ข้อมูลชนิดหนึ่งในภาษาไพธอน (<class ‘NoneType’>) มีค่าคล้ายๆ กับค่า null หรือ nil ในภาษาอื่น กล่าวคือ None
คือ ค่าที่ไม่มีค่าใดๆ โปรแกรมเมอร์มักใช้ None เป็นสถานะของ Flag ในการตรวจสอบ รวมถึงใช้เป็นค่าเริ่มต้น (default value) ให้กับตัวแปร (เพื่อให้ตัวแปรตัวนั้นๆ เป็น undefined) หรือค่าส่งกลับ (return value) ของฟังก์ชั่น
คลิ๊กฟังเพลง
เราสามารถดึง Keys ทั้งหมดที่มีอยู่ใน Dictionary ออกมาได้โดยใช้เมธอด keys()
# ดึง keys ทั้งหมดที่อยู่ใน dictionary
release_year_dict.keys()
dict_keys(['Thriller', 'Back in Black', 'The Dark Side of the Moon', 'The Bodyguard', 'Bat Out of Hell', 'Their Greatest Hits (1971-1975)', 'Saturday Night Fever', 'Rumours'])
print(type(release_year_dict.keys()))
<class 'dict_keys'>
//: # “
Note
เมธอด keys()
ส่งค่ากลับเป็นออบเจ็ค ((view objects): dict_keys
) ในรูปของ list ของ Keys ทั้งหมดที่ถูกบันทึกภายใน Dictionary
เปลี่ยนออบเจ็กต์ dict_keys ให้อยู่ในรูปของ List
list(release_year_dict.keys())
['Thriller',
'Back in Black',
'The Dark Side of the Moon',
'The Bodyguard',
'Bat Out of Hell',
'Their Greatest Hits (1971-1975)',
'Saturday Night Fever',
'Rumours']
นอกจากนี้ เรายังสามารถดึง Values ทั้งหมดที่มีอยู่ใน Dictionary ออกมาโดยใช้เมธอด values()
# ดึงค่า (values) ทั้งหมดที่มีอยู่ใน dictionary
release_year_dict.values()
dict_values(['1982', '1980', '1973', '1992', '1977', '1976', '1977', '1977'])
print(type(release_year_dict.values()))
<class 'dict_values'>
//: # “
Note
เมธอด values()
ส่งค่ากลับเป็นออบเจ็ค ([view objects]: dict_values
) ในรูปของ list ของ Values ทั้งหมดที่ถูกบันทึกภายใน Dictionary
เปลี่ยนให้อยู่ในรูปของ List
list(release_year_dict.values())
['1982', '1980', '1973', '1992', '1977', '1976', '1977', '1977']
เราสามารถเพิ่มสมาชิกสมาชิก (adding/inserting) เข้าไปใน Dictionary ได้ง่ายๆ ดังนี้
# เพิ่มข้อมูลต่อท้ายใน dictionary
release_year_dict['Graduation'] = '2007'
release_year_dict
{'Thriller': '1982',
'Back in Black': '1980',
'The Dark Side of the Moon': '1973',
'The Bodyguard': '1992',
'Bat Out of Hell': '1977',
'Their Greatest Hits (1971-1975)': '1976',
'Saturday Night Fever': '1977',
'Rumours': '1977',
'Graduation': '2007'}
เราสามารถลบ (removing/deleting) สมาชิกได้โดยใช้คำสั่ง del
หรือ del()
# ลบสมาชิกด้วย key
del(release_year_dict['Thriller'])
release_year_dict
{'Back in Black': '1980',
'The Dark Side of the Moon': '1973',
'The Bodyguard': '1992',
'Bat Out of Hell': '1977',
'Their Greatest Hits (1971-1975)': '1976',
'Saturday Night Fever': '1977',
'Rumours': '1977',
'Graduation': '2007'}
# ลบสมาชิกด้วย key
del release_year_dict['Graduation']
release_year_dict
{'Back in Black': '1980',
'The Dark Side of the Moon': '1973',
'The Bodyguard': '1992',
'Bat Out of Hell': '1977',
'Their Greatest Hits (1971-1975)': '1976',
'Saturday Night Fever': '1977',
'Rumours': '1977'}
Note
del
เป็นคำสั่ง (statement) ไม่ใช่ฟังก์ชัน เป็นคำสั่งลบข้อมูลออกจากหน่วยความจำ จะมีหรือไม่มีวงเล็บก็ได้!
ยกตัวอย่างเช่น ถ้ากำหนดให้ x, y = 1, 2
คำสั่งต่อไปนี้ไม่ว่าจะเขียนคำสี่งใดก็ตามจะให้ผลลัพธ์เหมือนกัน
del x,y del (x,y) del (x),[y] del [x,(y)] del ([x], (y))
(Ref: [stackoverflow.com](https://stackoverflow.com/questions/39028249/why-does-del-x-with-parentheses-around-the-variable-name-work)
เราสามารถตรวจสอบว่ามี key ที่ต้องการอยู่ใน Dictionary หรือไม่โดยใช้ตัวดำเนินการ in
# ตรวจสอบว่าคีย์อยู่ใน dict หรือไม่
'The Bodyguard' in release_year_dict
True
หรือเขียนโค้ดแบบนี้ก็ได้
# ตรวจสอบว่าคีย์อยู่ใน dict หรือไม่
'The Bodyguard' in release_year_dict.keys()
True
'Thriller' in release_year_dict
False
นอกจากนี้ เรายังสามารถดึงทั้ง Keys และ Values ทั้งหมดที่อยู่ใน Dictionary ออกมาพร้อมกันเป็นคู่ๆ โดยใช้เมธอด items()
//: # “
Note
เมธอด items()
ส่งค่ากลับเป็นออบเจ็ค ([view objects]: dict_items
) ในรูปของ tuples ที่อยู่ใน list ซึ่งมี key-value pairs มาจาก dictionary
release_year_dict.items()
dict_items([('Back in Black', '1980'), ('The Dark Side of the Moon', '1973'), ('The Bodyguard', '1992'), ('Bat Out of Hell', '1977'), ('Their Greatest Hits (1971-1975)', '1976'), ('Saturday Night Fever', '1977'), ('Rumours', '1977')])
print(type(release_year_dict.items()))
<class 'dict_items'>
เปลี่ยนให้อยู่ในรูปของ List
list(release_year_dict.items())
[('Back in Black', '1980'),
('The Dark Side of the Moon', '1973'),
('The Bodyguard', '1992'),
('Bat Out of Hell', '1977'),
('Their Greatest Hits (1971-1975)', '1976'),
('Saturday Night Fever', '1977'),
('Rumours', '1977')]
สามารถใช้ฟังก์ชัน len( )
ตรวจสอบจำนวนสมาชิกได้
len(release_year_dict)
7
ตารางสรุปเมธอดของ Dictionary (ที่มักใช้บ่อย)
เมธอด |
คำอธิบาย |
---|---|
clear() |
ลบสมาชิกทั้งหมดใน dictionary (กลายเป็น empty dictionary) |
copy() |
ส่งค่ากลับเป็น dict ชุดใหม่ที่มีข้อมูลคัดลอก (clone) จาก dictionary |
get() |
ส่งค่ากลับเป็นค่า (values) ที่สัมพันธ์กับคีย์ (key) ที่ระบุ |
items() |
ส่งค่ากลับเป็นลิสต์ของคู่คีย์และค่า (key-value pair) ทั้งหมดใน dictionary |
keys() |
ส่งค่ากลับเป็นลิสต์ของคีย์ (keys) ทั้งหมดใน dictionary |
pop() |
ลบคีย์ (key) ออกจาก dictionary ถ้ามีคีย์ที่ระบุอยู่ และคืนค่ากลับเป็นค่า (value) ที่สัมพันธ์กับคีย์ที่ลบ |
popitem() |
ลบคู่คีย์และค่า (key-value pair) ตัวสุดท้ายออกจาก dictionary |
update() |
รวมข้อมูล (merge) ใน dictionary กับ dictionary อื่นเข้าด้วยกัน |
values() |
ส่งค่ากลับเป็นลิสต์ของค่า (values) ทั้งหมดใน dictionary |
Ref: https://realpython.com/python-dicts/#built-in-dictionary-methods
[Exercise]#
1.
จงตอบคำถามจงตอบคำถามจาก dictionary ต่อไปนี้
soundtrack_dic = {"The Bodyguard":"1992", "Saturday Night Fever":"1977", "My Heart Will Go On": "1997", "Happy": "2013", "A Real Hero": "2011"}
soundtrack_dic
{'The Bodyguard': '1992',
'Saturday Night Fever': '1977',
'My Heart Will Go On': '1997',
'Happy': '2013',
'A Real Hero': '2011'}
1.1) จงแสดงค่า Keys ทั้งหมดที่อยู่ใน Dictionary soundtrack_dic
ในรูปของ list
# เขียนโค้ดด้านล่าง แล้วกด Shift+Enter
//: # “
Click here for the solution
soundtrack_dic.keys() # Output: ['The Bodyguard', 'Saturday Night Fever', 'My Heart Will Go On', 'Happy', 'A Real Hero']
1.2) จงแสดงค่า Values ทั้งหมดที่อยู่ใน Dictionary soundtrack_dic
ในรูปของ list
# เขียนโค้ดด้านล่าง แล้วกด Shift+Enter
//:# “
Click here for the solution
soundtrack_dic.values() # Outpit: ['1992', '1977', '1997', '2013', '2011']
2
กำหนดให้ อัลบั้ม Back in Black, The Bodyguard และ Thriller มียอดขายอย่างเป็นทางการ 50, 50 และ 65 ล้านเหรียญสหรัฐ ตามลำดับ
2.1) จงสร้างตัวแปร dictionary album_sales_dict
โดยให้ keys เป็นชื่ออัลบัมและยอดขายเป็น vaules หน่วยล้านเหรียญสหรัฐ
# เขียนโค้ดด้านล่าง แล้วกด Shift+Enter
//: # “
Click here for the solution
album_sales_dict = {'The Bodyguard':50, 'Back in Black':50, 'Thriller':65}
หรือ
album_sales_dict = dict([('The Bodyguard', 50), ('Back in Black', 50), ('Thriller', 65)])
หรือ
album_sales_dict = dict((('The Bodyguard', 50), ('Back in Black', 50), ('Thriller', 65)))
2.2) ใช้ key หายอดขายของอัลบัม Thriller
# เขียนโค้ดด้านล่าง แล้วกด Shift+Enter
//: # (
Click here for the solution
album_sales_dict["Thriller"]
2.3) ใช้เมธอด keys()
ดึงชื่ออัลบัมที่อยู่ใน dictionary ออกมาในรูปของ list
# เขียนโค้ดด้านล่าง แล้วกด Shift+Enter
//: # “
Click here for the solution
album_sales_dict.keys()
2.4) ใช้เมธอด values
ดึง Value ที่เป็นยอดขายใน dictionary ออกมาในรูปของ list
# เขียนโค้ดด้านล่าง แล้วกด Shift+Enter
//: # “
Click here for the solution
album_sales_dict.values()
3
จงสร้าง dictionary person
ที่มีข้อมูล
{'fname': 'แฮ่งดี', 'lname': 'เก่งขยันอดทน', 'age': 21, 'spouse': 'งาม', 'children': ['พอดี', 'พอใจ', 'เพรียงพอ'], 'pets': {'dog': 'ชิโระ', 'cat': 'คุโรเนโกะ'}, 'occup': ('ครู', 'ชาวสวน')}
โดยทำตามขั้นตอนต่อไปนี้
3.1) สร้างตัวแปร person
เป็นข้อมูล dictionary ว่างๆ (empty dict)
# เขียนโค้ดด้านล่าง แล้วกด Shift+Enter
3.2) โค้ดตรวจสอบว่าตัวแปร person
เป็นชนิด dict
หรือไม่
# เขียนโค้ดด้านล่าง แล้วกด Shift+Enter
3.3) คำสั่งกำหนด key fname
(ชื่อ)
# เขียนโค้ดด้านล่าง แล้วกด Shift+Enter
3.4) คำสั่งกำหนด key lname
(นามสกุล)
# เขียนโค้ดด้านล่าง แล้วกด Shift+Enter
3.5) คำสั่งกำหนด key age
(อายุ)
# เขียนโค้ดด้านล่าง แล้วกด Shift+Enter
3.6) คำสั่งกำหนด key spouse
(คู่สมรส)
# เขียนโค้ดด้านล่าง แล้วกด Shift+Enter
3.7) คำสั่งกำหนด key children
(บุตรธิดา)
# เขียนโค้ดด้านล่าง แล้วกด Shift+Enter
3.8) คำสั่งกำหนด key pets
(สัตว์เลี้ยง)
# เขียนโค้ดด้านล่าง แล้วกด Shift+Enter
3.9) คำสั่งกำหนด key occup
(อาชีพ)
# เขียนโค้ดด้านล่าง แล้วกด Shift+Enter
3.10) คำสั่งแสดงชื่อของลูกคนสุดท้าย
# เขียนโค้ดด้านล่าง แล้วกด Shift+Enter
3.11) คำสั่งแสดงชื่อของแมว
# เขียนโค้ดด้านล่าง แล้วกด Shift+Enter
3.12) คำสั่งแสดงอาชีพว่ามีกี่อาชีพ
# เขียนโค้ดด้านล่าง แล้วกด Shift+Enter
//: # “
Click here for the solution
person = {}
type(person) == dict
person['fname'] = 'แฮ่งดี'
person['lname'] = 'เก่งขยันอดทน'
person['age'] = 21
person['spouse'] = 'งาม'
person['children'] = ['พอดี', 'พอใจ', 'เพรียงพอ']
person['pets'] = {'dog': 'ชิโระ', 'cat': 'คุโรเนโกะ'}
person['occup'] = ('ครู','ชาวสวน')
person['children'][-1]
person['pets']['cat']
len(person['occup'])
“Make it work, make it right, make it fast.” – Kent Beck (an American software engineer and the creator of the Extreme Programming and Test Driven Development software development …)
Change Log#
Date |
Version |
Change Description |
---|---|---|
08-08-2021 |
0.1 |
First edition |
05-05-2022 |
0.2 |
Fix the typo, minor change |