Keyword arguments ที่มีจำนวนไม่คงที่
ต่อไปมาลองใช้ keyword arguments แบบที่มีจำนวนไม่คงที่กัน! งานของคุณคือกำหนดฟังก์ชัน key_types() ให้รับ keyword arguments จำนวนเท่าใดก็ได้ แล้วคืนค่าเป็น dictionary ใหม่ โดยคีย์คือประเภทของออบเจกต์ที่ไม่ซ้ำกันของอาร์กิวเมนต์ที่ส่งเข้ามา และค่าที่เชื่อมโยงกับแต่ละคีย์คือลิสต์ที่บรรจุชื่ออาร์กิวเมนต์ซึ่งมีประเภทตรงกับคีย์นั้น (เช่น การเรียก key_types(kwarg1='a', kwarg2='b', kwarg3=1) จะได้ผลลัพธ์เป็น {<class 'int'>: ['kwarg3'], <class 'str'>: ['kwarg1', 'kwarg2']}).
หากต้องการดึงประเภทของออบเจกต์ ให้ใช้ฟังก์ชัน type() (เช่น type(1) คือ int)
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
ฝึกทำโจทย์สัมภาษณ์งานเขียนโค้ดด้วย Python
คำแนะนำการฝึกหัด
- กำหนดฟังก์ชันให้รับ keyword arguments จำนวนเท่าใดก็ได้
- วนซ้ำผ่านคู่ key-value
- อัปเดตลิสต์ที่เชื่อมโยงกับคีย์
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Define the function with an arbitrary number of arguments
def key_types(____):
dict_type = dict()
# Iterate over key value pairs
for key, value in kwargs.____:
# Update a list associated with a key
if ____(____) in ____:
dict_type[____].____
else:
dict_type[____] = [____]
return dict_type
res = key_types(a=1, b=2, c=(1, 2), d=3.1, e=4.2)
print(res)