(อาจารย์)ค่ะมานั่งที่เร็วคราวที่แล้วนะคะเราพูดถึงรูปแบบของการการจัดเก็บข้อมูลยังจำarrayได้ไหมจำได้ไหมคะหรือเคยได้ยินไหมเคยได้ยินอยู่นะarrayใช่ไหมคะแล้วก็มีอีกตัวหนึ่งคืออะไรที่เรียนไปคราวที่แล้วคือlistใช่ไหมคะจะมีarrayตัวนี้หนึ่งตัวแล้วก็มีlistนะคะที่เราเรียนไปแล้วคราวก่อนรูปแบบของการจัดเก็บข้อมูลแบบarrayกับlist1ตัวแปรเก็บได้กี่ค่าเอ่ย1ตัวแปรเก็บได้หลายค่าได้ไหมคะได้ไหมใครคิดว่าได้ยกมือขึ้นเร็วได้ไหมถ้าเป็นlistกับarray1ตัวแปรเก็บได้มากกว่า1ค่าจริงหรือเท็จจริ(ถ)ง(ู)ไ(ก)หม(น(ร)ั(ื)ก(อ)ศ(ไ)ึ(ม)ก(่)ษ(ถ)า(ู))(ก)จริงครับ(อาจารย(ไ)์(ห))(ม)จริงใช่ไหมคะเห็นไหมคะว่า1ตัวแปรนี่เราเก็บได้กี่ค่าหลายค่าใช่ไหมคะ1ตัวแปรจะเก็บได้หลายค่าแต่ความแตกต่างระหว่างarrayกับlistนะคะในการจัดเก็บข้อมูลที่เขาเก็บได้หลายค่านี่ถ้าเป็นarrayทุกค่าจะต้องเป็นชนิดข้อมูลเดียวกันชนิดข้อมูลเดียวกันเช่นเป็นตัวเลขก็ต้องตัวเลขทั้งหมดใช่ไหมคะเป็นตัวอักษรเป็นตัวหนังสือน่ะก็ต้องเป็นตัวหนังสือทั้งหมดนะคะแต่ถ้าเป็นlistต้องเเก็บข้อมูลแบบlistข้างในนี่สามารถเก็บได้มากกว่า1ประเภทคือข้อมูลข้างในนี่สามารถมีผสมกันได้นะคะเป็นตัวเลขหรือเป็นข้อความก็ได้นะคะอันนี้คือความแตกต่างระหว่างarrayกับlistเวลาเราจะเข้าถึงข้อมูลที่อยู่ในlistหรือarrayเราจะใช้อะไรคะindexเป็นตัวระบุว่าจะจะเข้าถึงข้อมูลที่ตำแหน่งไหนindexเริ่มต้นมีค่าเท่ากับมีค่าเท่ากับอะไรเอ่ยindexเริ่มต้นจะมีค่าเป็น0นะคะข้อมูลตัวแรกนี่indexคือ0,1,2,3นะคะครูถามว่าถ้าครูพูดถึงx[1]ค่าที่ได้คือออะไรเราเข้าถึงนี้(่)ข้อมูลตัวที่เท่าไรตัวที่...ตัวไหนคะตอบอะไรสมมุติเขาต(บ)อบ(ก)ว่าxแล้วindexเป็็น1เรแ(า)ล(.)้(.)ว(.)ค่าที่ได้ก็คือมีค่าเป็น2เพราะว่าเราเริ่มต้นindexที่0แล้วก็1ก็คือเพราะฉะนั้นคำตอบก็คือ2ใช่ไหมคะงงไหมไม่งงอันนี้indexที่0indexที่1,2นี่ครูจะชี้ให้เห็นว่าตัวแรกคือindexเป็น0เป็น1เป็น2เป็น3นะคะคราวที่แล้วที่ทำlistไปสงสัยอะไรไหมถ้าครูอยากจะเพิ่มข้อมูลลงไปในlistใช้คำสั่งอะไa(ร)เอ่ยใช้อะไรคะถ้าครูอยากจะเพิ่มข้อมูลใหม่อย่างเช่นเพิ่มค่า10ลงไปในlistxครูจะต้องใช้คำสั่งอะไรเอ่ยx.อะไรคะapp...appอะไl(ร)appi(e)ndถูกไหมx.appendนะคะแล้วก็(แล้วก็ใส่ค่าจำได้ไหมน่ะจำได้คราวนี้วันนี้เราจะมาดดูรูปแบบของการจัดเก็บข้อมูลอีก1ประเภทนะคะซึ่งรูปแบบนี้มีเฉพาะในpythonนะคะก็คือdictionaryก็คือตัวนี้นะคะดิชั(d)น(i)น(c)า(t)ร(i)ี(o)น(n)ะ(a)ค(r)ะ(y)เมื่อกี๊(้)เราเห็นรูปแบบของการจัดเก็บข้อมูลในlistหรือarrayแล้วนะคะเราจะเก็บค่าข้อมูลที่เราต้องการเก็บเรียงต่อกันไปเรื่อยๆนะคะโดยใช้เครื่องหมาย,เป็นตัวคั่นเก็บไว้ใน1ตัวแปรกรณีที่เป็นdictionaryนะคะจะมีความแตกต่างจากlistหรือหรือ(a)a(r)rayโดยรูปแบบในการจัดเก็บเรามเก็บแล้วไม่ได้เก็บค่าเพียงอย่างเดียวแต่เราเก็บkeyนะคะเก็บkeyมันด้วยเดิมในlistกับarrayนี่ก(ต)ัวระบุคือตัวindexนะคฤ(ะ)แต่ในdictionaryเราจะเก็บkeyกับvalueนะคะเราจะเก็บkeyกับvalueโดยkeyนี่จะหมายถึงตัวindexที่จะเข้าถึงข้อมูลซึ่งเราจะกำหนดเองนะคะเราสามารถกำหนดเองได้ส่วนvalueก็คือค่าข้อมูลที่จะต้องสอดคล้องกับตัวkeyที่เราใส่ลงไปคราวนี้มาดูรูปแบบของการจัดเก็บนะคะเราจะใช้ก้าม...เอ่อ{ใช่ไหมคะใช้คนละสัญลักษณ์แล้วนะถ้าlistจะใช้แบบนี้ใเ(ช)ป(่)ิ(ไ)ด(ห)ป(ม)ิ([)ด(])แต่ถ้าเป็นdictionaryจะใช้{กับ}นะคะต่างกันถ้าเป็นdictie(o)naryนะคะ[({)แล้วต้องตามด้วยkey1นะคะkeyจะเป็นตัวอะไรก็ได้เป็นตัวเลขเป็นตัวหนังสือเป็นได้หมดนะคะ;(:)แล้วก็ค่านะคะอันนี้คือข้อมูลชุดที่1,ใส่ข้อมูลชุดที่2กำหนดkeyเหมือนเดิม:แล้วก็กำหนดค่าใส่แบบนี้ไปเรื่อยๆตรงนี้เราจะเห็นว่า1ตัวนี้คืออะไรเอ่ยคือkeyหรือvalue1ก็คือkeyนะคะoneก็คือvalueนี้(่)นะคะข้างหน้า;(:)คือkeyข้างหลัง:คือvalueนะคะเราเก็บข้อมูลอะไรdictionaryตัวนี้เก็บข้อมูลนะคะ1.ภาษาอังกฤษคือออะไร2.ภาษาอังกฤษคืออะไร3คือ(.)อ(น)ะไ(ค)ร(ะ)อย่างนี้เป็นต้นการเข้าถึงข้อมูลในdictionaryนะคะเรามาดูการเข้าถึงข้อมูลในdictionaryก่อนใช้เหมือนเดิมเลยนะคะต้องใส่ชื่อdictionaryก่อนถูกไหมคะเหมือนตัวlistเลยมีชื่อdictionaryก้ามปู(น)เ(ะ)ก(ค)ิ(ะ)ด([)แล้วก็ต้องใส่ค่าkeyนะคะต้องใส่ค่าkeyคต(ร)ั(า)วนี้มาดูdictionaryตัวนี้นะคะครูมีค่าเก็บค่าคะแนนของแต่ละคนjaเ(m)จ(e)ม(s)ได้คะแนนเท่าไรthomasคะแนนเท่าไรdannyนะคะแล้วก็บ๊อ(b)บ(o)บ(b)ี(b)้(y)แต่ละคนก็จะมีคะแนนที่แตกต่างกันจะเห็นว่าในตัวแปรscoresนะคะตัวแปล(ร)dictionaryชื่อscoresครูมีข้อมูลกี่ตัวครูมีข้อมูลกี่ตัว(นักศึกษา)4(อาจารย์)4ตัวถูกไหมคะkeyครูคืออะไรบ้างkeyคือjames,thomasแ(,)ด(d)น(a)น(n)ี(n)้(y)แล้วก็บ๊อ(b)บ(o)บ(b)ี(b)้(y)สิ่งเหล่านี้คืออะไรคะคือkey1,828,3,000,9,000แล้วก็4,000คือvalueใช่ไหมเวลาครูต้องการเข้าถึงค่าคะแนนของบ๊อ(b)บ(o)บ(b)ี(b)้(y)ครูอยากเข้าถึงอยากรู้ว่าbบ(o)๊(b)อ(b)บ(y)บ(ไ)ี(ด)้คะแนนเท่าไรครูก็อ้างอิงถึงอs(ย)c(่)o(า)r(ง)e(ไ)ก(ร)้(ค)า(ะ)ม(s)ป(c)ู(o)เ(r)ป(e)ิ(s)ด([)แล้วก็keyของตัวนี้คือบ๊อ(b)บ(o)บ(b)ี(b)้(y)นะคะแล้วก็ปิด(])คราวนี้ทุกคนเปิดอ(a)น(n)า(a)ค(c)อ(o)น(n)ด(d)า(a)อยู่หรือเปล่าเปิดanancondaอยู่ใช่ไหมคราวนี้นะคะสร้างdictionaryตัวนี้ให้ครูหน่อยสร้างตัวนี้scoresdictionaryชื่อscoresทุกคนพิมพ์ค่ะเราจะมีdictionaryนะคะชื่อscoresมีkeyอยู่4ตัวvalueอยู่4ค่านะคะเราจะมาสร้างdictionaryนะคะชื่อscoresกันนะคะสไลด์ครูมีอยู่ในclassroomนะคะเป็นไฟล์pdfกับไฟล์powerpointให้อยู่ในclassroomนะคะเสร็จหรือยังคราวนี้ถ้าใครเสร็จแล้วนะคะถ้าใครพิมพ์เสร็จแล้วหาคำตอบให้ครูหน่อยว่าscores['่james']นะคะscoresแล้วค่าคะแนนของเจ(j)ม(a)ส(m)์(e)แ(s)ล(ค)้(ื)ว(อ)เ(j)จ(a)ม(m)ส(e)์(s)คือkeyใค(ช)ื(่)อ(ไ)j(ห)a(ม)m(ค)e(ะ)jamesมีคะแนนเท่าไหร่เวลาเราจะprintใช่ไหมคะเวลาเราจะแสดงข้อมูลนี่เราก็ใช้คำสั่งอะไรprintแล้วjamesตัวหน้านี้ข้างหน้านี่มันเป็นสิ่งที่เราต้องการให้แสดงที่หน้าจอใช่ไหมคะเป็นข้อความที่เราต้องการให้แสดงเราก็เลยมีเครื่องหมายquoteใช่ไหมเครื่องหมายคำพูดนะคะแล้ว,ค่าที่เราต้องการแสดงคืออะไรก็คือคะแนนของjamesก็คือscores[นะคะแล้วก็คี(k)ย(e)์(y)ก็คือjamesเอ้าลองดูสิคะว่าบรรทัดที่1ของคำสั่งแรกนี่จะตอบว่าอะไรบรรทัดนี้ตอบอะไรเอ่ยตอบเท่าไรคะผลลัพธ์จากการใช้คำสั่งprintตัวนี้ผลลัพธ์เป็นอะไรคะผลลัพธ์เป็น1828คนอื่นได้ไหมคะแนนของjamesก็คือ1,828ได้คำตอบหรือยังคะคำสั่งที่1ได้แล้วคราวนี้พอได้คำสั่งที่1นะคะคำสั่งที่2,3,4ไม่พิมพ์นะไม่ต้องพิมพ์นะคะแต่ตอบครูได้ไหมว่าscores['thoโ(m)ท(a)ม(s)ั(')ส(])ตอบเท่าไหร่คะ3,628รู้ได้อย่างไรตัวนี้tโ(h)ท(o)ม(m)ั(a)ส(s)ตัวนี้คือkeyใช่ไหมคือkeyนะคะเพราะฉะนั้นเอาkeyมาเทียบในตัวdictionaryจะได้ค่านี้นะคะแล้วเราอยากรู้ว่าแล้วkeyคือtโ(h)ท(o)ม(m)ั(a)ส(s)นี่มีค่าเท่าไรก็คือ3,628ใช่ไหมคะพิมพ์อันเดียวก็พอแต่อันอื่นเราก็ตอบได้นะคะเห็นแลค(้)ำ(ว)ส(เ)ั(ห)่(็)ง(น)คำสั่งเราก็ตอบได้นะคะdannyscores['danny']เป็นเท่าไร9,310นะคะscores['บ(b)๊(o)อ(b)บ(b)บ(y)ี(')้(])ก็คือ4,401ใช่ไหมโอ.เคได้นะอันนี้คือการเข้าถึงข้อมูลในdictionaryนะคะเมื่อเราดึงข้อมูลจากdictionaryแล้วนะคะถ้าเราอยากจะปรับปรุงข้อมูลที่อยู่ในdictionaryบ้างจะทำอย่างไรถ้าเราอยากจะปรับปรุงคือเปลี่ยนค่าคะแนนนะคะเราจะทำอย่างไรเราก็กำหนดค่าเขาได้เลยนะคะให้scores[นะคะต้องการปรับค่าข้อมูลที่คี(k)ย(e)์(y)ตัวไหนก็ระบุลงไปนะคะแล้วก็]เท่ากับ(=)ค่าใหม่ที่เราต้องการเปลี่ยนแปลงนะคะอย่างเช่นครูต้องการเปลี่ยนค่าtโ(h)ท(o)ม(m)ั(a)ส(s)จากเดิมนะคะคือ3,628เปลี่ยนค่าเป็น100ครูก็เอาค่าใหม่นี่ไปใส่ลงไปในคี(k)ย(e)์(y)ที่ชื่อว่าtโ(h)ท(o)ม(m)ั(a)ส(s)นะคะพอครูเปลี่ยนค่าแล้วเราอยากรู้ว่ามันเปลี่ยนจริงไหมต้องใช้คำสั่งอะไรคะprintออกมาตอนนี้ทุกคนเปลี่ยนค่าของtโ(h)ท(o)ม(m)ั(a)ส(s)สิคะพิมพ์คำสั่งนี้เปลี่ยนค่าของthomโ(a)ท(s)ให้เป็น100แล้วลองเช็กดูสิว่ามันเปลี่ยนจริงไหมทำ2คำสั่งนี้เราจะเปลี่ยนค่าของtโ(h)ท(o)ม(m)ั(a)ส(s)ได้ไหมคะเราจะเปลี่ยนค่าของthomasอย่างเช่นเราkeyผิดเราพิมพ์ผิดนะคะเราก็จะปรับปรุงค่าใหม่พอเราprintออกมาแล้วค่าเราเปลี่ยนไหมเปลี่ยนไหมคะลองทำเฉพาะคำสั่งที่ครูตีกรอบสี่เหลี่ยมตัวนี้นะคะพิมพ์คำสั่งที่1คือคำสั่งนี้นะคะที่ครูตีกรอบสี่เหลี่ยมให้เสร็จแล้วเราก็ต้องการอยากรู้ว่าค่ามันเปลี่ยนไหมก็ต้องprintออกมาดูก็ใช้คำสั่งนี้นะคะเขียนแค่2คำสั่งมีคำสั่งที่1แล้วก็คำสั่งที่2คราวนี้ผ่านไหมคะได้นะอันนี้คือเราเข้าถึงข้อมูลทีละค่าใช่ไหมคะเราอ่านข้อมูลทีละค่าตามkeyที่เราระบุลงไปนะคะเราอ่านทีละค่าตามคี(k)ย(e)์(y)ที่เรากำหนดคราวนี้ถ้าครูอยากจะอ่านข้อข้อมูลที่อยู่ในdictionaryนะคะทั้งหมดเลยว่าประกอบไปด้วยข้อมูลอะไรบ้างอยากจะprintออกมาทั้งเลยนะคะว่าในdictionaryที่เราสร้างขึ้นนี่มีข้อมูลอะไรบ้างนะคะเราจะไม่เข้าถึงข้อมูลทีละตัวถ้าเราต้องการเข้าถึงข้อมูลพร้อมกันทั้งหมดคือให้มันprintออกมาทีเดียวนะคะหลายๆค่าเราจะใช้loopforนะคะเราจะใช้loopforคือการทำงานซ้ำก็คือการวนซ้ำนะคะการวนซ้ำก็คือทำไปเรื่อยๆจนกว่าจะครบตามที่เรากำหนดสมมุติครูมีดูพร้อมกันก่อนนะคะครูมีdictionaryอยู่1ตัวเก็บข้อมูลประเทศนะคะโดยkeyคือชื่อย่อของประเทศvalueคือชื่อเต็มของประเทศนะคะเป็นภาษาอังกฤษครูอยากจะแสดงข้อมูลทั้งหมดที่อยู่ในdictionaryที่ชื่อว่า"countriesy(")นะคะที่ชื่อว่าcountriesเราจะแสดงข้อมูลอย่างไn(ร)เราจะใช้loopforนะคะเป็นตัววนloopเราจะใช้นะคะคำสั่งคือitemsดูทีละตัวfork,,vคือตัวแปรที่เราจะเอาไว้ใช้ในการรับค่าkeyกับvalueนะคะkกับvคือตัวแปรที่เราสร้างขึ้นจะใช้เป็นตัวแปรกชื่ออะไรก็ได้นะคะครูกำหนดให้เป็นkกับv"k"เก็บค่าค(k)ี(e)ย(y)์(")v"เก็บค่าvalueนะคะinตามด้วยชื่อของdictionarydictionary.itemsมีsนะคะ(แล้วก็)น(แ)ะ(ล)ค(้)ะ(ว)[(ก)](็)ใส่;เราต้องการแสดงค่าkeyกับvalueใช่ไหมคะตอนนี้เขาจะอ่านทีละตัวแล้วเก็บในตัวแปรkกับvเพราะฉะนั้นเราต้องprintตัวแปรkก็คือkeyถูกไหมคะและตัวแปรvก็คือvalueออกมาเขาจะทำงานอยู่ทั้งหมด4รอบด้วยกันใช่ไหมคะรอบที่1ก็จะเอาข้อมูลตัวแรกออกมาก่อนวนอ่านซ้ำเขยั(ิ)บไปตัวถัดไปนะคะอ่านซ้ำก็จะดึงตัวถัดมาลงแสดงแสดงแล้วก็ตัวสุดท้ายนะคะเขาก็จะทำงานทั้งหมด4รอบคือprintออกมา4ครั้งนะคะเท่ากับจำนวนที่อยู่ในdictionaryของเราโอ.เค.ไหมทีนี้เดี๋ยวดูก่อนนะนะคะแล้วค่อยทำอันนี้คือการอ่านค่าdictionaryนะคะคราวนี้ถ้าเราต้องการเฉพาะkeyอย่างเด่(ี)ช(ย)ช(ว)เอาkeyออกมาอย่างเดียวนะคา(ะ)ไม่อยากรู้ว่ามีvalueอะไรบ้างอยากรู้ว่าในdictionaryของเรานี่มีคี(k)ย(e)์(y)อะไรบ้างก็วนloopเหมือนกเดิมใช่ไหมคะก็เป็นforkก็คือตัวแปรที่ครูสร้างขึ้นเพื่อเก็บค่าkeyincountriesก็คือชื่อdictionary.keysมีsนะคะเอาเฉพาะkeyมาก็.keysนะคะ(แล้วก็);(:)ต้องการแสดงก็ใช้printใช่ไหมคะเอาค่าkออกมาอย่างเดียวถ้าครูมีเฉพาะkนะคะคำตอบมันจะเรียงลงมาทีละบรรทัดแต่ถ้าครูต้องการให้มันเรียงต่อในบรรทัดเดียวกันก็จะใช้แบบนี้นะคะ,end=ช่องว่างก็คือใส่''เป็นช่องว่างไปตรงนี้ก็จะหมาd(ย)e(ถ)a(ึ)'(ง)ช่องว่างตรงนี้นะคะอันนี้คือเอาเฉพาะkeyถ้าเอาเฉพาะvalueบ้างก็เปลี่ยนจากkeyตรงนี้เป็นvalueเฉยๆเลยนะคะก็เปลี่ยนจากคำสั่งkeyนี่ให้เป็นvaluesเติมsตัวแปรตัวนี้จะใส่เป็นอะไรก็ได้นะคะครูสร้างตัวแปรคือvเสร็จแล้วเราก็printค่าvออกมาที่หน้าจอมันจะเหมือนๆกันเลยถูกไหมคะไม่ได้มีอะไรต่างกันเลยเปลี่ยนแค่คำสั่งถ้าต้องการทั้งkeyกับvalueใช้itemsต้องการkeyเฉยๆใช้คำสั่งkeysใช่ไหมคะต้องการใช้valueเฉยๆก็ใช้คำสั่งvaluesคือมันก็ตรงไปตรงมานะคะคราวนี้ถ้าบอกว่าไม่อยากวนlล(o)ู(o)ป(p)นะคะมีคำสั่งอื่นไหมที่แสดงได้แบบง่ายๆเลยก็ใช้คำสั่งนี้เลยนะคะcountries.keysก็จะเอาค่.(า)keysออกมาให้เลยไม่ต้องใช้loopforนะคะหรือcountrisy(e).valuesก็จะโชวแ(์)ส(ค)ด(่)ง(า)ออกมาให้นะคะแต่ผลลัพธ์ที่ได้จะอยู่ในรูปแบบของlistนะคะอันนี้คือจะง่ายเดี๋ยวต(ค)่อยลองทำนะคะถ้าอยากหาขนาดของdictionaryใช้คำสั่งอะไรคะlenหาคำสั่งของlistก็ใช้อะไรก็ใช้lenนะคะคำสั่งจะคล้ายๆกันเลยหาคำสั่ง...หาขนาดของlistก็ใช่(้)lenหาขนาดของdictionaryก็คือมีข้อมูลกี่จำนวนก็ใช้lenนะคะlen(countriesy())คิดว่าจะตอบเป็นอะไรมีค่าเท่ากับ4ใช่มีค่าเท่ากับ4ก็คือมี4ชุดมีkeys4ตัวเท่านั้นเองถ้านับนะคะถ้าอยากเอาdictionaryมารวมกันถ้าอยากเอาdictionaryมารวมกันทำอย่างไรเอาd1กับd2มารวมกันนะคะรวมเสร็จแล้วเอาไปไว้ที่ไหนก็เอาไปไว้ที่d1นะคะก็คือเอาd2นี่มาต่อd1ก็จะใช้คำสั่งupdateนะคะd1.update(แล้วก็d2นะคะแเ(ล)ร(้)า(ว)ก็printออกมาดูซ(ส)ิd1มีค่าเป็นอะไรก็จะได้ข้อมูลแบบนี้นะคะเอาข้อมูลตัวที่2น่ะมาต่อตัวที่1อันนี้คือการต่อข้อมูลกันในdictionaryนะคะคราวนี้ทุกคนมีสไลด์ใช่ไหมเข้าclassroomได้ไหมคะได้ครูให้นะคะเราทำถึงตรงนี้ใช่ไหมครูจะให้ทุกคนลองสร้างลองทำพร้อมกันก็ได้ค่ะแต่ถ้าใครทำเร็วก็ลองไปดูในสไลด์นะคะในclassroomแล้วลองทำทุกคำสั่งไม่ว่าจะเป็o(น)การใช้valueใช่ไหมคะใช้ก(k)า(e)ร(y)ใช้itemนะคะแล้วก็การหาขนาดเริ่มต้นสร้างตัวแปรที่ชื่อว่าcountriesเก็บข้อมูลdictionaryนะคะแล้วก็แสดงข้อมูลตรงนี้ออกมาดูทำๆทีละคำสั่งจะได้ฝึกพิมพ์นะคะการที่เราฝึกพิมพ์เราจะได้รู้ว่าอ๋อมันพิมพ์คำสั่งแบบนี้แล้วต้องดูผลลัพธ์ด้วยนะคะไม่ใช่พิมพ์เฉยๆนะพิมพ์ตามครูพิมพ์แล้วก็ต้องดูด้วยว่าผลลัพธ์ที่ได้อ๋อมันเป็นแบบนี้ใช้คำสั่งนี้ได้ผลลัพธ์แบบนี้นะคะถ้าใครเสร็จก่อนนะคะไปดึงสไลด์ในclassroomนะคะแล้วพิมพ์ตามนะคะจากหน้านี้เป็นต้นไปใครพิมพ์แล้วerrorยกมือนะคะเดี๋ยวครูไปดูให้ใครเสร็จแล้วก็มาทำสไลด์ตร(ั)ง(ว)นี้ใช่ไหมพิมพ์ตรงไหนก็พิมพ์คำสั่งforอย่างไรพิมพ์คำสั่งforตรงนี้นะคะข้างบนนี้ต้องสร้างใหม่ไหมไม่สร้างแล้วสร้างครั้งเดียวพอนะคะdictionaryไม่ต้องสร้างใหม่แล้วนะคะถ้ามันมีของเดิมอยู่ก็ใช้ของเดิมเราก็แค่มาใช้คำสั่งตรงนี้นะคะเดี๋ยวครูย้อนกลับไปบางคนยังไม่เสร็จอันเดิมทุกคนนะคะถ้าใครพิมพ์หน้าแรกเสร็จแล้วเข้ามาที่googleclassroomเข้ามาที่classroomวิชานี้เร็วเพราะบางที่เราพิมพ์ความเร็วไม่เท่ากันนะคะเข้ามาที่classroomตัวนี้หรือยังคะเ(แ)ข(ล)้วกา(็)มาที่สไลด์ตัวนี้array.pptเห็นไหมคะอะเปิดขึ้นมาเห็นไหมเราก็จะเริ่มสไลด์ที่29นะคะอันนี้เราทำแล้วใช่ไหมเราก็เปิดไปสไลด์ที่30นะคะเราก็ใช้คำสั่งตรงนี้forใช่ไหมนะคะเราต้องการเอาเฉพาะคี(k)ย(e)์(y)เราก็พิมพ์ตัวนี้forสไลด์ถัดมา31เราต้องการเอาเฉพาะvalueเราก็พิมพ์เฉพาะคำสั่งนี้นะคะได้ไหมอันนี้ใครยังไม่เสร็จหน้านี้ใครยังไม่เสร็จเอาkeyกับvalueเอาแค่...เอาแค่คำสั่ง2บรรทัดนี้ไม่ต้องพิมพ์เยอะนะคะเอาแค่คำสั่ง2บรรทัดนี้คราวนี้เสร็จแล้วมาอ่านเอาเฉพาะkeyเอาเฉพาะkeyก็คือพิมพ์คำสั่งนี้ใช่ไหมคะเอาเฉพาะkeyเฉยๆอันนี้เสร็จหรือยังคำสั่งนี้ได้ไหมคะครูย้อนกลับมาที่ตัวแรกถ้าเป็นkกับvก็คือต้องใช้itemถูกไหมคะถ้าใช้itemsต้องมีkกับvอืมเพราะว่าitemsต้องการรค่าแสดง2ค่าคือkeyกับvalueนะคะได้ไหมแต่ถ้าเป็นkeysคำสั่งเป็นkeysตรงนี้เอาเฉพาะค่าเดียวก็คือค่าkนะคะถ้าใครเสร็จแล้วก็ถ้าเราต้องการเฉพาะvalueนะคะเอาเฉพาะค่าที่อยู่ในdictionaryออกมา...เ(แ)ข(ล)้วใช่ไา(ห)มคา(ะ)เราสามารถดึงค่าvalueออกมาได้คราวนี้ลองใช้2คำสั่งนี้ดูสิคะลองใช้2คำสั่งนี้ดูจะได้ผลลัพธ์ออกมาเป็นอย่างไรคราวนี้ใครเสร็จแล้วนะคะครูขอปเปิดแป๊บหนึ่งให้ทำแบบฝึกหัดได้ไหมให้ทำแบบฝึกหัดลองนะคนทำเสร็จแล้วทำแบบฝึกหัดต่อเลยใครยังไม่เสร็จทำก่อนขน(ห)าดเสร็จขนาดหรือยังคะหาขนาดเสร็จแล้วก็รวมหาขนาดเสร็จแล้วก็รวมนะคะใช้คำสั่งที่ครูสร้างblockให้รวมdictionaryอันนี้คือรวมdictionaryนะคะรวมได้ไหมรวมเสร็จแล้วเดี๋ยวเรามาดูแบบฝึกหัดนะทำข้อ2ก่อนข้อ2ง่ายทำข้อ2ก่อนเร็วข้อ2จะง่ายมากเราเคยทำแล้วเอา2อันมารวมกันทำอย่างไรเอาdictionary2อันเ(ม)ด(า)ี(ร)๋(ว)ย(ม)ว(ก)เ(ั)ร(น)เดี๋ยวเราทำข้อ2ก่อนข้อ2จะง่ายกว่าข้อ1เอาdictionaryใช้ค(ม)ำ(า)รวมกันใช้คำสั่งอะไรคะupdateคราวนี้ดูข้อ2ค่ะดูโจทย์ข้อ2ดูนะแบบฝึกหัดข้อ2นะครูบอกว่าให้รด(ว)ู(ม)dictionaryอันดับแรกเราก็ต้องสร้างdic1กt(่)i(อ)o(น)n(ใ)a(ช)r(่)y(ไ)ก(ห)่(ม)อ(ค)น(ะ)เสร็จแล้วต้ก(อ)็(ง)สร้างdic2เสร็จแล้วนี่เอาdic2มารวมกับdict1ใช้คำสั่งupdateใช่ไหมคะdic1.update(dic2เห็นไม(ห)่(ม)สร้างตัวที่1ตัวที่2นะคะรวมเอ๊าบรรทัดsampledictionaryไม่เขียนนะคะบรรทัดนี้น่ะไม่เขียนไม่ต้องลอกโจทย์สร้างเลยสร้างdicสร้างdictใช่ไหมเราจะรวมใช้คำสั่งอะไรเหมือนตร(ั)ง(ว)นี้เลยจะรวมๆๆเห็นไหมใช้คำสั่งอะไรupdateเหมือนกันเลยถ้าใครทำแบบฝึกหัดพิมพ์ตามครูแล้วอันนี้จะต้องทำได้ใช้updateนี้เลยคราวนี้ข้อ2นะคะเราก็ใช้คำสั่งเดี๋ยวคราวนี้มาดูข้อ2ทำแบบเดียวกันไหมเราสร้างdict1แล้วก็dic2แล้วใช่ไหมคะครูอยากจะรวมdic/ข้อมูล2อันมาเก็บไว้ที่dictionary1ครูก็ใช้คำสั่งdict1.update[(()dic2นะคะเอา2มารวมไว้ที่1เสร็จแล้วก็สั่งprintออกมาดูคราวนี้ย้อนกลับมาดูข้อ1ย้อนกลับมาดูข้อ1เร็วในโจทย์ข้อ1นะคะครูบอกว่าสร้างdictionaryนะคะที่มีค่าแบบนี้ถูกไหมเราก็ต้องสร้างก่อนนะคะสมมุติครูให้เป็นxนะแล้วก็สร้างdictionaryก่อนนะคะทุกคนสร้างขึ้นมาเป็นตัวแปรอะไรก็ได้อันดับแรกครูให้สร้างdicก่อนเราก็สร้างนี่เราสร้างแล้วใช่ไหมคะจากนั้นครูให้เพิ่มค่าใช่ไหมคะค่าkeyคือ2valueคือ30เวลาเราจะเพิ่มข้อมูลลงไปในdictionaryเราจะใช้คำสั่งupdateถูกไหมคราวที่แล้วน่ะเราเอามาต่อกันแสดงว่าเราเพิ่มข้อมูลลงไปในdictionaryนะคะเพราะฉะนั้นเราจะเพิ่มข้อมูลลงไปในdictionaryตัวนี้ก็ใช้เป็นx.อะไรคะupdateแล้วก็[(()]())ก่อนจะเอาค่าอะไรใส่ลงไปเนื่องจากมันเป็นkeyกับvalueต้องอยู่ภายใต้[({)กับ](})เอาค่าอะไรคะ2กับ30ลงไปจากนั้นอยากรู้ว่ามันเพิ่มจริงไหมก็ใช้คำสั่งprintอะไรคะprint(x)จะเห็นว่าจากเดิมนะคะที่เราใช้คำสั่งเดี๋ยวครูเพิ่มอีกข้อหนึ่งให้เราข้อที่2นะจะเห็นว่าครูใช้dic1.update(dic2)dic2นี่มันก็คือdictionaryถูกไหมคุณสามารถเอาค่ามันมาใส่เลยหรือเอาตัวแปรมาใส่ก็ได้เพราะครูก็เลยอย่างนี้อันนี้คือใช้ตัวแปรใช่ไหมแต่ข้อข้างั(บ)นครูเอน(า)ค่าที่ต้องการจะเพิ่มน่ะมาใส่เลยนะคะเหมือนกันได้ไหมถ้าใครเสร็จแล้วให้เบรก5นาทีให้พัก5นาทีค่อยๆนั่งดูนะคะค่อยๆนั่งดูคำสั่งนี้คืออะไรเอาสไลด์มาแล้วก็มาหัดทำทีละคำสั่งคราวนี้ดูนะคะครูอยากรู้ว่าเราแยกlistกับdictionaryออกไหมคือเหมือนรูปร่างนะนะคะเหมือนเราแยกผลไม้ตามรูปร่างเห็นรูปร่างแบบนี้เราก็บอกได้ว่าอันนี้คือผลไม้ชนิดอะไรนะคะอย่างlistกับdictionaryนี่รูปแบบการเขียนไม่เหมือนกันเลยนะคะครูแค่อยากรู้ว่าเราพอมองออกไหมว่าlistเป็นอย่างไรdictionaryเป็นอย่างไรdiction(น)a(ะ)r(ค)y(ะ)ครูมีโจทย์อยู่3ข้อด้วยกันนะมีx,y,zตัวแปรxyข้(,)อ(y)ไ(แ)ห(ล)น(้)เ(ว)ป(ก)็นlistบ้าง(z)ข้อไหนเป็นlistบ้าง1,2,31กับ3เป็นlistข้อ2เป็นอะไรคะเป็นdictionaryถูกไหมมีใครแยกไม่ออกไหมว่ารูปแบบการเขียนอัะ(น)ไหนที่เป็นlistรูปแบบอันไหนที่เป็นdictionaryนะคะdictionaryต้องมีkeyกับvalueใช่ไหมคะdictionaryต้องมีkeyกับvalueนะคะส่วนlistเราจะใช้indexในการเข้าถึงข้อมูลนะคะo.(โ)k(อ).ที่ใส่ไม่มีนะไม่เป็นไรค่ะ(.)เราจะมาดูรูปแบบของโครงสร้างข้อมูลอีกแบบหนึ่งก็คือstackนส(ะ)แ(ค)ต(ะ)ก็คือstackเดี๋ยวมาดูว่ามันเป็นแบบไหนอันนี้นะคะstackเป็นรูปแบบอีกไ(แ)ห(บ)ม(บ)หนึ่งนะคะเคยไท(ป)่(ท)านก๋วยเตี๋ยวไหมคะทุกคนเคยไปผ่านร้านก๋วยเตี๋ยวไหมใช่ไหมคะเคยนั่งทานเคยนั่งมองถ้วยที่เขาเอามาทำก๋วยเตี๋ยวไหมเคยนั่งมองไหมระหว่างรอก๋วยเตี๋ยวเขาวางจาน...เขาวางถ้วยเป็นลักษณะแบบนี้ใช่ไหมบางร้านก็จะคว่ำใช่ไก(ห)็(ม)จ(ค)ะบางค(ร)ว(้)่(า)ำ(น)ใ(ก)ช(็)่(จ)ไ(ะ)หงายถม(้)ค(ว)ะ(ย)ไม่สำคัญก็คือจะมีการเรียงถ้วยขึ้นไปแบบนี้ใช่ไหมคะเวลาเขาหยิบชามมาทำให้คุณเขาหยิบจากข้างล่างหรือหยิบจากข้างบน(นักศึกษา)จากข้างบน(อาจารย์)มีร้านไหนไหมหยิบมาจากข้างล่างมีไหมไม่มีใช่ไหมคะเวลาเขาทำก๋วยเตี๋ยวในร้านใช่ไหมคะเขาจะหยิบถ้วยข้างบนออกคราวนี้พอเรานั่งมองไปเรื่อยๆถ้วยมันก็ลดลงไปถูกไหมเขาก็เอาถ้วยใหม่น่ะมาวางเขาซ้อนด้านล่างหรือซ้อนด้านบน(นักศึกษา)ซ้อนด้านบน(อาจารย์)ซ้อนด้านบนถูกไหมคะถ้วยแรกนี่ที่เขาเอามาวางนี่จะถูกใช้ตอนไหนตอนสุดท้ายเลยถูกไหมไม่ถูกใช้สักทีน่ะวางทับขึ้นไปเรื่อยๆถูกไหมคะถ้วยนี่ล่าสุดที่วางจะถูกหยิบเ(อ)อา(ก)ไปใช้ก่อนถูกไหมใช่ไหมคะถ้วยที่วางตั้งแต่เช้านี่จะถูกใช้ทีหลังนะคะอันนี้คือรูปแบบของการเก(จ)็(ั)บ(ด)เก็บข้อมูลแบบstackนะคะและละการเรียกใช้ข้อมูลแบบstackคือเข้าก่อนออกทีหลังเข้าก่อนออกทีหลังนะคะเข้าทีหลังออก...ออกก่อนใช่ไหมเข้าก่อนออกทีหลังเข้าที่หลังจะออกก่อนนะคะคราวนี้เราเทียบกับอะไรถ้าเราเทียบคือข้อมูลนี่แทนจานแต่ละ.ท(.)น(.)ถ้วยแต่ละใบนะคะข้อมูลไหนที่เข้ามาเก็บก่อนจะถูกดึงออกม(ไ)า(ป)ใช้ทีหลังส่วนข้อมูลไหนที่อยู่บนสุดหรืออยู่ล่างสุดนี่จะถูกดึงออกไปใช้ก่อนนะคะเราไม่สามารถดึงตรงกลางออกม(ไ)า(ป)ได้เคยเห็นไหมเวลาทานก๋วยเตี๋ยวเขาเอาถ้วยตรงกลางออกไปใช้ไม่มีใช่ไหมคะเพราะฉะนั้นเวลาเอาข้อมูลออกไปใช้เราต้องเอาตัวล่าสุดที่อยู่ข้างบนออกไปใช้จะไม่มาดึงตรงกลางนะนะคะไม่มาดึงออกตรงกลางนะคะคราวนี้รูปแบบของการจัดเก็บแบบนี้นะคะเข้าที่หลังออกก่อนก็คือlastinfistoutนะคะเข้าที่หลังออกก่อนอย่างที่ครูอธิบายข้อมูลที่เข้ามาในstackอั(ล)น(ำ)ดับแรกจะอยู่ด้านล่างสุดถูกไหมอยู๋(่)ด้านล่างสุดของstackนะคะเราจะเรียกโครงสร้างตรงนี้ว่า"stส(a)แ(c)ต(k)ด(")ข้อมูลที่เข้ามาเป็นลำดับสุดท้ายก็จะอยู่ข้างบนสุดนะคเ(ะ)ข้า(อ)มูลที่เข้ามาในลำดับสุดท้ายจะถูกเม(อ)าไปใช้งานก่อนข้อมูลที่เข้ามาแรกสุดเลยจะถูกเอามาใช้ทีหลังสุดนะคะคราวนี้แล้วstackนะคะรูปแบบของการจัดเก็บข้อมูลแบบsส(t)แ(a)ต(c)ด(k)เราเก็บแบบไหนเราใช้เป็นlistก็ได้ถูกไหมข้อมั(ู)น(ล)จ(ม)ะ(า)เรป(ี)็(ย)น(ง)ต่อกันไปหรือarrayนะคะหรือเป็นlinklistก็ได้นะคะแล้วแต่เราจะเลือกวิธีการเก็บแต่คอนเซ็ปต์ของstackมีแค่ว่าเข้าทีหลังออกก่อนถึงจะเรียกว่ามันคือstackนะคะคราวนี้ดูการทำงานของsส(t)แ(a)ต(c)ด(k)ต้องมีเข้ากับออกใช่ไหมการทำงานของstackต้องมีเข้ากับอe(อ)r(ก)จะมีเข้ากับออกได้กี่ทางstackเรามองร้านก๋วยเตี๋ยวมองถ้วยท(น)ี่ที่เขาเรียงต่อไปมีทางเข้าทางออกกี่ทางทางเดียวถูกไหมใช่ไหมถ้า2ทางคือต้องมีบนกับล่างแต่เราเอาออกแค่ด้ายนบนเอาเอ(ข)อ(้)ก(า)ด้านบนใช่ไหเ(ม)อ(ค)า(ะ)เข(พ)้(ร)าด(ะ)้(ฉ)า(ะ)นับ(้)นstackจะมีทางเข้าทางออกเพียงแค่1ทางเท่านั้นนะคะการนำข้อมูลเข้าไปเก็บไว้ในstackเราจะใช้คำสั่งที่ชื่อว่า"push"pushถูกไปไหมคะก็คือดันน่ะเหมือนประตูมีpushถูกหรือเปล่าแล้วเวลาเราเอาข้อมูลออกจากstackจะใช้คำสั่ง"pop"นะคะถ้าพูดถึงstaส(c)แ(k)ต(จ)ด(ะ)ต้องรู้จักpushกับpoppushคือใส่popคือเอาออกนะคะคราวนี้มาดูอันนี้คือตัวอย่างนะเราไม่สามารถเปิดออกมาได้ดูว่าในหน่วยความจำsส(t)แ(a)ต(c)ด(k)เก็บแบบไหนเราก็ต้องจินตนาการนี่มันต้องเก็บแบบนี้นะคะเพื่อให้เราเข้าใจได้ไหมคราวนี้stackว่างstackว่างมีข้อมูลไหมถ้าพูดถึงคำว่า"stact(k)ว่าง"คำs(ว)t(่)a(า)t(")ว่าง"มีข้อมูลไหมไม่มีนะคะถ้าพูดถึงstackว่างคือไม่มีข้อมูลเลยstackว่างอยู่นะคะถ้าครูต้องการใส่ข้อมูลลงไปในstackครูจะใช้put(s)e(h)หรือpoppushใช่ไหมคะครูจะใส่ข้อมูลลงไปในstackหย่อนข้อมูลลงไปครูก็ใช้คำสั่งps(u)d(s)h(a)aคือข้อมูลนะคะเห็นไหมพอครูpushมันลงมะ(า)เห็นไหมเราสร้างกล่องขึ้นมากล่องหนึ่งนะคะอันนี้คือในจินตนาการนะค(เ)รู(า)สร้างกล่องขึ้นมากล่องหนึ่งนะคะถ้าครูสั่งpushต่อก็คือจะได้กล่องbถูกไหมครูใช้คำสั่งpush(c)ก็จะได้กล่องcครูใช้คำสั่งpush(d)ก็จะได้กล้องdที่อยู่ข้างบนคราวนี้ครูอยากเอาข้อมูลออกจากstackครูใช้คำสั่งpopอะไรออกก่อนอะไรจะถูกดึงออกมาddogถูกไหมคะพอครูใช้คำสั่งpopปุ๊บddogหายทันทีถูกไหมเพราะครูดึงมันออกมาแล้วนะคะครูใช้คำสั่งpush(e)ก็ใส่ลงมาpush(f)ก็ใส่ลงมาใช่ไหมคะแล้วครูpopอะไรออกfหรือaffก็จะหายไปนะคะอันนี้คือลักษณะการทำงานของsส(t)แ(a)ต(c)ด(k)มีแค่pushกับpopแค่นั้นเอt(ง)นะคะpushคือใส่เข้าpopคือเอาออกเวลาเราเอาออกเราต้องบอกให้ได้ว่าเอาอะไรออกนะคะเอาข้อมูลเอาค่าข้อมูลอะไรออกจากstackคราวนี้เราจะแทนstackด้วยอะไรได้บ้างนะคะเราสามารถใช้listแบบนี้เป็นstackก็ได้ใช่ไหมคะโดยเราจะเขียนเป็นแนวตั้งหรือแนวนอนได้หมดเพราะมันคือlistนะคะlistข้อมูลจะเรียงต่อกันไปเรื่อยๆคราวนี้ทุกคนดูตัวอย่างนี้ไว้นะคะเดี๋ยวครูจะเขียนคำสั่งแล้วให้ทุกคนวาดแบบนี้ได้ไหมนะคะแล้วทุกคนก็จะวาดblockก(อ)ล(ย)่อ(า)งนี้ขึ้นมาครูจแ(่)จ(า)ก(ย)กระดาษให้คนละ1ใบนะคะครูจ่ายกระดาษให้คนละ1ใบครูมีคำสั่งนะคะอยู่6ข้อครูมีคำสั่งอยู่6ข้อมีแค่pushกับpopแค่นั้นเองไม่มีอะไรอย่างอื่นเลยpushกับpoh(p)วาดรูปให้ครูหน่อยได้ไหมคะวาดรูปstackในแต่ละข้อทำอย่างไรข้อ1ใช่ไหมคะลอกโจทย์ก่อนคือpush(10)เพราะฉะนั้นเรค(า)ื(ม)อ(ี)อะไร10อย่างนี้ใช่ไหมค่ะถัดไปข้อ2pushเท่าไหร่คะ20แต่ละข้อทำต่อเนื่องนะคะpush(20)เพราะฉะนั้น20อยู่บนหรืออยู่ล่าง10(นักศึกษา)อยู่บน(อาจารย์)อยู่บนอย่างนี้ทำไปเรื่อยๆจนครบ6ข้อเขียนใส่กระดาษให้ครูหน่อยคราวนี้ข้อ3คือpush(30)ข้อ4คือpopเอาpopตรงไหนออกดีเอาp(ข)o(้)p(อ)ต(ม)ร(ู)ง(ล)ไหนออกไปไม่รู้ต้อ(ก)ง(็)ไล่ลงมาก่อนถูกไหมเออต้องดูก่อนว่าพอpush(30)แล้ว30อยู่ตรงไหนนะแล้วเวลาpopเอาอะไรออกสุดท้ายแล้วstackเหลือค่าอะไรบ้างงงไหมค่อยๆทำทีละ1ข้อถูกไหมคะเอ้าเริ่มต้นข้อที่1ก่อนpush(10)เราก็สร้างblockเก็บข้อมูล10พอข้อ2เรามี10แล้วเราpushเท่าไรคะpush(20)ลงไปข้อแ(3)ล(เ)้(ร)ว(า)pushเท่าไหร่push(30)จะอยู่ตรงไหนดีเอามาเรียงต่อด(ข)้าน(ง)บนหรือด้านข้างหรือด้านล่างวาดนะคะข้อ4popเอาอะไรออกล่ะpopลบอะไรออกแป็(๊)บหนึ่๊(ง)นะคะถ้าใครงงเอาสไลด์หน้านี้ขึ้นมาดูเพราะครูโหลดครูอัพไว้ให้ที่classroomแล้วเอาสไลด์หน้านี้มาดูเห็นไหมpush(a)ได้อะไรเห็นไหมทีละอันแต่เผอิญเขาเขใ(ี)ส(ย)่(น)ทีละหลายๆคำสั่งอย่างไรครูให้ทำทีละคำสั่งpush(b)ใส่อะไรเห็นไหมก็คือไล่ไปอย่างนี้เป็นข้อๆนะคะนึกออกนะครูทำข้อ1กับข้อ2ไ(ใ)ว(ห)้ล่ะทำต่อให้ครแ(ู)ล(ห)้(น)ว(่)ท(อ)ำ(ย)จนครบ6ข้อเอ้าลองดูซ(ส)ิข้อ1ครูทำแบบไหนข้อ2เอ๊ะคำสั่งนี้ข(แ)้(ล)อ(้)2(ว)ครูทำแบบไหนพอมาข้อ3ก็ลองเลียนแบบสิ่งที่ครูทำดูสิคะดูนะคะpushpushข้างบนนะตัวล่างตัวแรก10ม(น)ั(ี)น(่)จะถูกดันลงมานะคะ10จะถูกดันลงมาแล้วก็ใส่ตัวใหม่ถูกไหมพอpushอีก2ตัวนี้ก็จะถูกดันลงมาแล้วก็ใส่ตม(ั)า(ว)ใหม่ไม่เอามาต่อข้างหลังนะนึกถึงถ้วยก๋วยเตี๋ยวน่ะจะถ(ด)ึงออกมาจากด้านล่างหรือหรือจะเอามาต่อด้านล่างดันๆขึ้นไปหรือคงไม่ใช่นะคะอันนี้มาดูพร้อมกันน่ะค่ะมาๆเดี๋ยวครูลบใหม่ก่อนคราวนี้ดูๆนะคะเราจะวาดอย่างไรเดี๋ยวครูให้ทำแบบฝึกหัดอีกข้อหนึ่งครูใช้คำสั่งpush(10)ใช่ไหมคะครูสร้างblock10มาไว้ก่อนครูใช้คำสั่งpush(10)ครูสร้างblock10มาครูใช้คำสั่งอะไรคะpush(20)เพราะฉะนั้นเดิมมีอะไรคะเดิมมี10ก็เขียนของเดิมของเดิมก่อนคือ10แล้วต่อข้างบนด้วยอะไร20นะคะดูๆดูบนกระดานก่อนมาๆๆต่อมาข้อ3ครูใช้คำสั่งอะไรคะpush(30)เดิมมีอยู่กี่อันมีอยู่แล้ว2อันถูกไหมคะถ้าpushน่ะให้วาดของเดิมก่อนถ้าpushนะคะให้วาดของเดิมก่อนมีอะไรเสร็จแล้วเราใส่อะไรไป30ก็ต้องเอามาต่อข้างบนถัดมาครูใช้คำสั่งpoppopคือเอาออกเอาข้างบนหรือข้างล่างออกเอาข้างบนออกถูกไหมคะเพราะฉะนั้นเหลืออะไร20กับ10ถูกไหมครูใช้คำสั่งpopคือเอาออกเอาอะไรออกก็ต้องเอาตัวบนสุดออกเพราะฉะนั้นมันจะเหลืออะไรเหลือ20กับ10ถูกไหมคะหลังจากที่เราใช้คำสั่งpopอีกหนึ่งครั้งเราเหลืออะไรเหลือ10หลังจากที่เราใช้คำสั่งนี้แล้วผลลัพธ์เป็นอย่างไรเราก็วาดรูปนะคะเสร็จแล้วเราpushอะไรคะpush(50)เดิมมีอะไรเดิมมี10pushก็คือเพิ่มเข้าไปข้างบนเป็นเลข50ได้ไหมพอได้ไหมอีกอันหนึ่งลองทำอีกข้อหนึ่งแบ่งครึ่งกระดาษก็ได้นะคะเขียนในกระดาษแผ่นนั้นล่ะครูมีอยู่5ข้อpush('a')push('b')pop()pop()แล้วก็push('c')แสดงวิธีทำหลังจากที่ทำแต่ละคำสั่งผลลัพธ์เป็นอะไรครูpush('a')ถูกไหมคะครูpush('a')ครูสร้างบ(b)ล(l)็(o)อ(c)ก(k)aขึ้นมาเสร็จแล้วpush('b')ทำอย่างไรเอาaเดิมมาไว้ก่อนถูกไหมคะแล้วก็ต่อด้วยbสงสัยไหมถ้าสงสัยต้องถามนะคะว่ามันคืออะไรpushpushpoppopนี่เดี๋ยววันนี้เราเอาคอนเซปต์stackนะคะpushกับpopให้เข้าใจคราวนี้มาดูนะคะครูpush('b')ได้แล้วมาดูข้อ3คือpopคือpopใช่ไหมเอาอะไรออกเอาbออกเพราะฉะนั้นเหลืออะไรคะเหลือaเหลือaนะคะข้อ4ครูสั่งpopอีกครั้งหนึ่งเพราะฉะนั้นเหลืออะไรไม่เหลือนะคะจะเขียนหรือไม่เขียนก็ได้เสร็จแล้วครูใส(ช)่(้)คำสั่งpush('c')ก็คือครูต้องสร้างบ(b)ล(l)็(o)อ(c)ก(k)ใหม่คือcนะคะstackสุดท้ายเหลม(ื)ี(อ)ข้อมูลอะไรcได้นะมีใครยังงงอีกไม่รู้ว่าpushกับpopอย่างไรงงไหมคราวนี้ต่อไดป(้)ไหมนะคะเวลาเราจะใช้คำสั่งpushข้อมูลลงstackอันนี้ให้ดูก่อนนะเดี๋ยวสัปดาห์หน้าเราค่อยมาเขียนนะคะเวลาเราจะเพิ่มข้อมูลลงไปในstackเราบอกว่าข้(s)อ(t)ม(a)ู(c)ล(k)ของเรานี่คือlistนะคะเรากำหนดให้stackของเราคือlistที่เราเรียนไปนี่คราวก่อนนะคะเพราะฉะนั้นคำสั่งในre(l)a(i)c(s)h(t)ที่จะเพิ่มข้อมูลคือใช้คำว่า"append"นะคะใช่(้)คำว่าappendครูเขียนฟังก์ชันขึ้นมานะคะ1ตัวก็คือpushโดยส่งค่าข้อมูลที่เราจะpusญ(h)ลงไปเสร็จแล้วครูก็สั่งถูกไหมคะstackครูก็ส(ช)ั(ื)่ง(อ)stackstack.append(ค่าข้อมูลที่จะใส่ไปคืออะไรนะคะอันนี้คือpushคc(อ)o(น)n(เ)c(ซ)e(ป)p(ต)t(์)ของpushเรารู้แล้วอันนี้คือแปลงมาเป็นcodeของโปรแกรมstackว่างนะคะstackว่างนะคะstackว่างคือไม่มีข้อมูลนะคะครูถามว่าถ้าstackมันว่างเราสามารถpopได้ไหมถ้าstackมันว่างไม่มีไม่มีstackไม่มีจานเลยสักใบนี่จะเอาไปใส่ก๋วยเตี๋ยวได้ไหมไม่ได้ใช่ไหมคะคc(อ)o(น)n(เ)c(ซ)e(ป)p(ต)t(์)แบบเดัียวกันถ้าstackมันว่างแสดงว่ามันไม่มีข้อมูลอะไรแล้วต้องแสดงว่ามันไม่มีข้อมูลอะไรแล้วเราก็ต้องโชว์คำว่า"stackว่าง"หรือ"stackemn(p)tr(y)y(")นะคะเพื่อบอกว่าต่อไปต้องหาข้อมูลมาใส่นะแต่ถ้ามีก็ดึงออกมานะคะถ้ามันยังมีข้อมูลอยู่ในstackเราก็ดึงมันออกมาคราวนี้มาดูนะคะจะรู้ได้อย่างไรว่าstackมันว่างก็หาขนาดของlistถูกไหมคะstackมันว่างหรือเปล่าก็หาขนาดของlistถ้าขนาดเป็นอะไรคะเป็น0แสดงว่ามีข้อมูลไหมถ้าขนาดของlistเป็น0แสดงว่ามีข้อมูลไหมหาขนาดเป็น0ก็ไม่มีสิถูกไหมถ้ามีข้อมูล1ตัวขนาดเท่ากับเท่าไรเท่ากับ1นะคะเราก็เช็กก่อนว่าstackมันว่างไหมเช็กจากขนาดของstackนะคะถ้ามันว่างก็ไม่ต้องทำอะไรแต่ถ้ามันไม่ว่างก็popมันออกมานะคะก็ใช้คำสั่งpopได้เลยครูต่อนะคะถ้าครูอยากดูข้อมูลบนสุดที่อยู่ในstackนะคะอยากรู้ว่าข้อมูลล่าสุดที่อยู่ในstackมันคืออะไรนะคะเราจะใช้stack[-1ก็คือตัวถ้ามองเป็นreac(l)h(i)ก(s)็(t)คือตัวสุดท้ายนะคะเอาข้อมูลตัวสุดท้ายจะใช้indexเป็น-1นะคะก็เหมือนเรากลับน่ะข้างหน้าเป็น0ข้างหลังก็กลับก็คือให้เป็น-1หาขนาดหาขนาดของstackใช้คำสั่งlenนะคะใช้คำสั่งlenเดี๋ยวเราจะมาเขียนcodeกันนะคะคราวหน้าดูว่าจะเอาข้อมูลเข้าเอาข้อมูลออกแล้วเหลือข้อมูลอะไรบ้างนะคะเดี๋ยวสัปดาห์หน้าstackเอาไปใช้ทำอะไรเดี๋ยวดูคร่าวๆก่อนนะเstackเอาไปใช้ทำอะไรบวกเลขได้ไหมคะทุกคนบวกลบเลขได้ไหมได้ใช่ไหมคะทุกคนบวกลบเลขได้หมดเลยเดี๋ยวแป๊บหนึ่งครูถามว่า5+4*(x)2ตอบเท่าไรคะตอบให้ครูหน่อย5+4x2ตอบเท่ากับหา)(ห)((า)มีใครได้คำตอบอื่นไหมน่ะอ้าวใช้ความรู้เดิม5+4*(x)2ตอบเท่ากับ...มีใครได้คำตอบอะไรบ้าง1.คือ13เราได้เท่าไหร่คะ(นักศึกษา)18(อาจารย์)มีคนอื่นได้อีกไหมทำไมโจทย์เดียวกันได้ค่า2ค่ามีใครได้มากกว่า13กับ18ไหมคะใครได้13ยกมือหน่อยเร็วใครคำนวณแล้วได้13ยกมือไหนมี1คนแล้วมีใครอีกคะมี2คนคู่นั้นใครได้18อ่(้)าวที่ไม่ยกคือออะไรบวกเลขไม่เป็นหรือทุกคนบวกเลขเป็นมี13กับ18ใช่ไหมคะตอนสมัยเรียนประถมฯมัธยมฯคุณครูบอกว่าถ้าเจอวงเล็บก่อนให้ทำข้างในวงเล็บใช่ไหมนะคะถ้ามีวงเล็บให้ทำให้วงเล็บแต่บังเอิญว่าอันนี้ไม่มีวงเล็บนะคะแต่เป็นตัวเลขที่เรียงต่อกันมาระหว่างบวกกับคูณอันไหนมีลำดับความสำคัญมากกว่ากันบวกกับคูณอะไรสำคัญกว่ากันคูณเพราะฉะนั้นเราควรทำบวกก่อนหรือคูณก่อนควรทำอะไรก่อน(นักศึกษา)ทำคูณก่อน(อาจารย์)คูณก่อน4*(x)2เป็น8แล้วบวกกับ5ตอบเท่ากับ13ใช่ไหมนะคะกรณีที่ไม่มีวงเล็บอย่างไรเราก็ต้องดูว่าอันไหนคือลำดับความสำคัญมากกว่านะคะบวกกับลบเท่ากันทำอะไรก่อนก็ได้บวกกับลบคูณกับหารอย่างนี้เท่ากันนะคะแต่คูณจะมากกว่าบวกกับลบจะเห็นไหมคะว่าการบวกเลขตรงนี้นะคะถ้าเราเอาใส่ในexcelนะคe(ะ)หรือในคอมพิวเตอร์ที่สามารถประมวลผลไม่ใช่เครื่องคิดเลขนะเพราะเครื่องคิดเลขเราจิ้มทีล่(ะ)ตัวถ้าใครไปเอาเครื่องคิดเลขธรรมดานะมาจิ้มก็ไม่ถูกนะนะคะต้องเป็นเครื่องคิดเลขวิทยาศาสตร์เครื่องคิดเลขในมือถือเราน่ะได้ที่ใส่เป็นชุดได้นะคะเราบวกลบเลขใช่ไหมคะแล้วคอมพิวเตอร์นี่เราใส่ข้อมูลตัวนี้คอมพิวเตอรง(์)นี่จะคำนวณให้ได้ไหมได้เอาไปลองtestในexcelนะคะก็คำนวณให้ได้คอมพิวเตอร์คำนวณได้อย่างไรเขาใช้stackนะคะช่วยในการคำนวณตัวเลขให้ออกมาเป็น13นะคะเดี๋ยวรอบหน้านี่จะมีวิธีการคำนวณนะะ(ค)ค(ะ)ว่าคอมพิวเตอร์นี่คำนวณมาได้เลข13นี่คำนวณอย่างไรนะคะไม่ได้ง่ายๆเลยนะมีขั้นตอนเยอะมากนะคะกว่าจะได้เลข13มาแต่เราทำอย่างไรคะใส่ปุ๊บเดีล(ย)ข(ว)ในexcelออกมาเลยใช่ไหมคะออกมาเลยใช่ไหมคะแต่เราจะมาดูแล้วเบื้องหลังมันคำนวณแบบไหนนะคะรอบหน้าเราคำนวณได้เราต้องรู้ด้วยว่าแล้วคอมพิวเตอร์คำนวณอย่างไรนะคะเดี๋ยวครูจะฝากการบ้านนะทุกคนมีชีตนะคะlistdictionaryนะคะstackเดี๋ยวครูจะฝากการบ้านกับพี่ปอยง่ายๆไม่ยากนะเดี๋ยวจะป(p)ร(r)ิ(i)้(n)น(t)มาให้นะคะลองทำดูเป็นการทบทวนนะคะเป็นการทบทวนเผื่อเวลาสสอบนะจะได้เข้าใจนะคะจะได้จำได้เดี๋ยวเจอกันสัปดาห์หน้านะคะเดี๋ยวครูจะฝากการบ้านไว้ให้ค่ะเดี๋ยว...[สิ้นสุดการถอดความ]
Public file