การเข้าถึง subarray
มาลองเข้าถึงสมาชิกใน NumPy array กัน! โจทย์คือให้แปลง array สองมิติรูปสี่เหลี่ยมจัตุรัส square ขนาด size ให้เป็น list โดยเรียงลำดับตามรูปแบบเกลียววน:

แทนที่จะเข้าถึงแค่ slice บางส่วน ให้กำหนดวิธีแก้ปัญหาแบบทั่วไปโดยใช้ลูป for (วิธีนี้ควรใช้ได้กับ array สองมิติรูปสี่เหลี่ยมจัตุรัสทุกขนาดที่เป็นเลขคี่)
โมดูล numpy ถูก import มาแล้วในชื่อ np
จะต้องใช้ฟังก์ชัน reversed() ซึ่งทำหน้าที่กลับลำดับของ Iterable
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
ฝึกทำโจทย์สัมภาษณ์งานเขียนโค้ดด้วย Python
คำแนะนำการฝึกหัด
- แปลงส่วนที่ลูกศรสีแดงชี้ให้เป็น list
- แปลงส่วนที่ลูกศรสีเขียวชี้ให้เป็น list
- แปลงส่วนที่ลูกศรสีน้ำเงินชี้ให้เป็น list
- แปลงส่วนที่ลูกศรสีม่วงแดงชี้ให้เป็น list
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
spiral = []
for i in range(0, size):
# Convert each part marked by any red arrow to a list
spiral += list(square[i, ____:____])
# Convert each part marked by any green arrow to a list
spiral += list(square[____:____, size-i-1])
# Convert each part marked by any blue arrow to a list
spiral += list(reversed(square[size-i-1, ____:____]))
# Convert each part marked by any magenta arrow to a list
spiral += list(reversed(square[____:size-i-1, ____]))
print(spiral)