(อาจารย์)คราวที่แล้วนะคะเราพูดถึงรูปแบบของการจัดเก็บข้อมูลยังจำarrayได้ไหมจำได้ไหมคะเคยได้ยินไหมarrayแล้วก็อีกตัวหนึ่งคืออะไรที่เรียนไปคราวที่แล้วคือlistใช่ไหมคะจะมีarraylistนะคะที่เราเรียนไปแล้วคราวก่อนรูปแบบของการจัดเก็บข้อมูล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ใช่ไหมคะงงไหมไม่งงindex0indexที่1,2นี่ครูจะชี้ให้เห็นว่าตัวแรกindexเป็น01เป็น2เป็น3นะคะคราวที่แล้วที่ทำlistไปสงสัยอะไรไหมถ้าครูอยากจะเพิ่มข้อมูลลงไปในlista(ร)เอ่ยใช้อะไรคะถ้าครูอยากจะเพิ่มข้อมูลใหม่อย่างเช่นเพิ่มค่า10ลงไปในlistxครูจะต้องใช้คำสั่งอะไรเอ่ยx.อะไรคะapp...appl(ร)appi(e)ndx.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,ใส่ข้อมูลชุดที่2key:ใส่แบบไปเรื่อยๆตรงนี้เราจะเห็นว่า1ตัวนี้คืออะไรเอ่ยคือkeyหรือvalue1ก็คือkeyนะคะoneก็คือvalueนี้(่)นะคะข้างหน้า;(:)คือkeyข้างหลัง:คือvalueอะไรdictionaryเก็บข้อมูล1.ภาษาอังกฤษคืออะไร2.ภาษาอังกฤษคืออะไร3อ(.)อ(น)ไ(ค)ร(ะ)อย่างนี้เป็นต้นการเข้าถึงข้อมูลในdictionaryการเข้าถึงข้อมูลในdictionaryก่อนใช้เหมือนเดิมเลยนะคะต้องใส่ชื่อdictionarylistเลยมีชื่อdictionaryู(น)เ(ะ)ก(ค)ิ(ะ)ด([)แล้วก็ต้องใส่ค่าkeyนะคะต้องใส่ค่าkeyต(ร)ั(า)วนี้มาดูdictionaryเก็บค่าคะแนนของแต่ละคนjaเ(m)จ(e)ม(s)ได้thomasคะแนนเท่าไรdannyแล้วก็อ(b)บ(o)บ(b)ี(b)้(y)แต่ละคนจะมีคะแนนที่แตกต่างกันจะเห็นว่าในตัวแปรscoresนะคะตัวแปล(ร)dictionaryscoresครูมีข้อมูลกี่ตัวครูมีข้อมูลกี่ตัว(นักศึกษา)4(อาจารย์)4ตัวkeyครูคืออะไรบ้างkeyjames,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ให้ครูหน่อยสร้างตัวนี้scoresdictionaryscoresเราจะมีdictionaryนะคะชื่อscoreskeyอยู่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ใช่ไหมคะเวลาเราจะแสดงข้อมูลนี่เราก็ใช้คำสั่งอะไรprintjamesตัวหน้านี่เป็นสิงที่หน้าจอใช่ไหมคะเป็นข้อความที่เราต้องการให้แสดงเราก็เลยมีเครื่องหมาย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)ได้ไหมคะเราจะเปลี่ยนค่าของthomaskeyเราพิมพ์ผิดนะคะเราก็จะปรับปรุงค่าใหม่พอเราprintเปลี่ยนไหมคะลองทำเฉพาะคำสั่งที่ครูตีกรอบสี่เหลี่ยมตัวนี้พิมพ์1คือคำสั่งนี้ที่ครูตีกรอบสี่เหลี่ยมให้เสร็จแล้วเราก็ต้องการอยากรู้ว่าค่ามันเปลี่ยนไหมก็ต้องprintก็ใช้คำสั่งนี้นะคะเขียนแค่2คำสั่งคำสั่งที่1แล้วก็คำสั่งที่2คราวนี้ผ่านไหมคะได้นะอันนี้คือเราเข้าถึงข้อมูลทีละค่าใช่ไหมคะเราอ่านข้อมูลทีละค่าตามkeyที่เราระบุลงไปเราอ่านทีละค่าตามี(k)ย(e)์(y)ที่เรากำหนดคราวนี้ถ้าครูอยากจะอ่านข้อมูลที่อยู่ในdictionaryทั้งหมดเลยว่าประกอบไปด้วยข้อมูลอะไรบ้างอยากจะprintออกมาทั้งเลยนะคะว่าในdictionaryขึ้นนี่มีข้อมูลอะไรบ้างนะคะเราจะไม่เข้าถึงข้อมูลทีละตัวถ้าเราต้องการเข้าถึงข้อมูลพร้อมกันทั้งprintนะคะหลายๆค่าเราจะใช้loopforเราจะใช้loopforการทำงานซ้ำก็คือการวนซ้ำนะคะการวนซ้ำก็คือทำไปเรื่อยๆจนกว่าจะครบตามที่เรากำหนดสมมุติครูมีดูพร้อมกันก่อนนะคะครูมีdictionaryอยู่1ตัวเก็บข้อมูลประเทศนะคะโดยkeyคือชื่อย่อของประเทศvalueคือชื่อเต็มของประเทศนะคะเป็นภาษาอังกฤษครูอยากจะแสดงข้อมูลทั้งหมดที่อยู่ในdictionaryที่ชื่อว่า"countriesy(")นะคะที่ชื่อว่าcountriesn(ร)เราจะใช้loopforเป็นตัววนloopเราจะใช้นะคะคำสั่งคือitemsดูทีละตัวfork,,vคือตัวแปเอาไว้ใช้ในการรับค่าkeyกับvalueนะคะkvที่เราสร้างขึ้นจะใช้เป็นตัวแปรชื่ออะไรก็ได้นะคะครูกำหนดให้เป็นkกับv"k"ค่าค(k)ี(e)ย(y)์(")v"เก็บค่าvalueinตามด้วยชื่อของdictionarydictionary.itemsมีsนะคะ()น(แ)ะ(ล)ค(้)ะ(ว)[(ก)](็)ใส่;เราต้องการแสดงค่าkeyกับvalueตอนนี้เขาจะอ่านทีละตัวแล้วเก็บในตัวแปรkกับvเราต้องprintตัวแปรkก็คือkeyถูกไหมและตัวแปรvก็คือvalueออกมาเขาทำงานอยู่ทั้งหมด4รอบด้วยกันใช่ไหมคะรอบที่1ก็จะเอาข้อมูลตัวแรกออกมาก่อนวนอ่านซ้ำขยั(ิ)บไปตัวถัดไปอ่านซ้ำก็จะดึงตัวถัดมาลงแสดงแล้วก็ตัวสุดท้ายเขาก็จะทำงานทั้งหมด4รอบคือprint4เท่ากับจำนวนที่อยู่ในdictionaryโอ.เค.ไหมดูก่อะแล้วค่อทำอันนี้คือการอ่านค่าdictionaryคราวนี้ถ้าเราต้องการเฉพาะkeyอย่่(ี)ช(ย)ช(ว)เอาkeyออกมาอย่างเดียวา(ะ)ไม่อยากรู้ว่ามีvalueอะไรบ้างในdictionaryของเรานี่มีี(k)ย(e)์(y)อะไรบ้างก็วนloopเหมือนเดิก็เป็นforkก็คือตัวแปรที่ครูสร้างขึ้นเพื่อเก็บค่าkeyincountriesdictionary.keyssเอาเฉพาะkeyมาก็.keys();(:)ต้องการแสดงก็ใช้printใช่ไหมคะเอาค่าkออกมาอย่างเดียวถ้าครูมีเฉพาะkนะคะคำตอบมันจะเรียงลงมาทีละบรรทัดแต่ถ้าครูต้องการให้มันเรียงต่อในบรรทัดเดียวกันก็จะใช้แบบนี้นะคะ,end=ช่องว่างก็คือใส''d(ย)e(ถ)a(ึ)'(ง)ช่องว่างตรงนี้นะคะอันนี้คือเอาเฉพาะkeyถ้าเอาเฉพาะvalueบ้างก็เปลี่ยนจากkeyตรงนี้เป็นvalueเฉยๆเลยนะคะก็เปลี่ยนจากคำสั่งkeyนี่เป็นvaluesเติมsตัวแปรตัวนี้จะใส่เป็นอะไรก็ได้นะคะครูสร้างตัวแปรคือvเสร็จแล้วเราก็printค่าvออกมาที่หน้าจอมันจะเหมือนๆกันเลยถูกไหมคะไม่ได้มีอะไรต่างกันเลยเปลี่ยนแค่คำสั่งถ้าต้องการkeyvalueใช้itemsต้องการkeyเฉยๆใช้คำสั่งkeysต้องการใช้valueก็ใช้คำสั่งvaluesคือมันก็ตรงไปตรงมาคราวนี้ถ้าบอกว่าไม่อยากวนlล(o)ู(o)ป(p)นะคะมีคำสั่งอื่นไหมที่แสดงได้แบบง่ายๆเลยก็ใช้คำสั่งนี้เลยนะคะcountries.keys.(า)keysไม่ต้องใช้loopforนะคะหรือcountrisy(e).valuesก็จะแ(์)ส(ค)ด(่)ง(า)ออกมาให้นะคะแต่ผลลัพธ์ที่ได้จะอยู่ในรูปแบบของlistนะคะอันนี้คือจะง่ายเดี๋ยวต(ค)่อลองทำนะคะถ้าอยากหาขนาดของdictionarylenหาคำสั่งของlistก็ใช้อะไรก็ใช้lenคำสั่งจะคล้ายๆกันหาคำสั่ง...หาขนาดของlistก็ใช่(้)lenของdictionaryก็ใช้lenlen(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สไลด์ถัดมา31valueเราก็พิมพ์เฉพาะคำสั่งนี้นะคะได้ไหมอันนี้ใครยังไม่เสร็จหน้านี้ใครยังไม่เสร็จkeyกับvalue...เอาแค่คำสั่ง2บรรทัดนี้ไม่ต้องพิมพ์เยอะนะคะเอาแค่คำสั่ง2บรรทัดนี้คราวนี้เสร็จแล้วkeyเอาเฉพาะkeyก็คือพิมพ์คำสั่งนี้ใช่ไหมคะเอาเฉพาะkeyเฉยๆอันนี้เสร็จยังคำสั่งนี้ได้ไหมคะถ้าเป็นkกับvitemถูกไหมคะถ้าใช้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อันดับแรกเราก็ต้องสร้างdic1t(่)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ต้องมีkeyvalueใช่ไหมคะ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)ต้องมีเข้ากับออกใช่ไหมการทำงานของstacke(อ)r(ก)จะมีเข้ากับออกได้กี่ทางstackเรามองร้านก๋วยเตี๋ยวมองถ้วยท(น)ที่เขาเรียงต่อไปมีทางเข้าทางออกกี่ทางทางเดียวถูกไหมใช่ไหมถ้า2ทางคือต้องมีบนกับล่างแต่เราเอาออกแค่ด้านบนเอาอ(ข)อ(้)ก(า)ด้านบนเ(ม)อ(ค)า(ะ)ข(พ)้(ร)ด(ะ)้(ฉ)า(ะ)บ(้)stackจะมีทางเข้าทางออกเพียงแค่1ทางเท่านั้นนะคะการนำข้อมูลเข้าไปเก็บไว้ในstackเราจะใช้คำสั่งที่ชื่อว่า"push"pushถูกไหมคะก็คือดันน่ะเหมือนประตpushแล้วเวลาเราเอาข้อมูลออกจากstackจะใช้คำสั่ง"pop"ถ้าพูดถึงstaส(c)แ(k)ต(จ)ด(ะ)ต้องรู้จัpushpoppushpopคราวนี้มาดูอันนี้คือตัวอย่างนะเราไม่สามารเปิดออกมาได้ดูว่าในหน่วยความจำsส(t)แ(a)ต(c)ด(k)เก็บแบบไหนเราก็ต้องจินตนาการนี่มันเก็บแบบนี้เราเข้าใจได้ไหมคราวนี้stackว่างstackว่างมีข้อมูลไหมถ้าพูดถึงคำว่า"stact(k)ว่าง"s(ว)t(่)a(า)t(")ว่าง"มีข้อมูลไหมไม่มีนะคะถ้าพูดถึstackงคือไม่มีข้อมูลเลยstackว่างอยู่นะคะถ้าครูต้องการใส่ข้อมูลลงไปในstackput(s)e(h)หรือpoppushจะใส่ข้อมูลลงไปในstackหย่อนข้อมูลลงไปครูก็ใช้คำสั่งps(u)d(s)h(a)aคือข้อมูลเห็นไหมpushะ(า)เห็นไหมเราสร้างกล่องขึ้นมากล่องหนึ่งอันนี้คือในจินตนาการนะค(เ)ู(า)สร้างกล่องขึ้นมากล่องหนึ่งนะคะถ้าครูสั่งpushต่อก็คือจะได้กล่องbถูกไหมครูใช้คำสั่งpush(c)ก็จะได้กล่องcครูใช้คำสั่งpush(d)ก็จะได้กล้องdข้างบนคราวนี้ครูอยากเอาข้อมูลออกจากstackครูใช้คำสั่งpopอะไรออกก่อนอะไรจะถูกดึงออกมาddogถูกไหมคะpopddogหายทันทีเพราะครูดึงมันออกมาแล้วนะคะครูคำสั่งpush(e)ก็ใส่ลงมาpush(f)ก็ใส่ลงมาแล้วครูpopอะไรออกfหรือaffก็จะหายไปนะคะอันนี้คือลักษณะการทำงานของsส(t)แ(a)ต(c)ด(k)มีแค่pushpopt(ง)นะคะpushคือใส่เข้าpopคือเอาออกเวลาเราเอาออกเราต้องบอกให้ได้ว่าเอาอะไรออกนะคะเอาข้อมูลเอาค่าข้อมูลอะไรออกจากstackคราวนี้เราจะแทนstackด้วยอะไรได้บ้างนะคะเราสามารถใช้listแบบนี้เป็นstackโดยเราจะเขียนเป็นแนวตั้งหรือแนวนอนได้หมดเพราะมันคือlistlistข้อมูลจะเรียงต่อกันไปเรื่อยๆคราวนี้ทุกคนดูตัวอย่างนี้ไว้นะคะเดี๋ยวครูจะเขียนคำสั่งแล้วให้ทุกคนวาดแบบนี้ได้ไหมนะคะแล้วทุกคนก็จะวาดblockก(อ)ล(ย)อ(า)ขึ้นมาครูแ(่)จ(า)ก(ย)กร1ครูจ่ายกระดาษให้คนละ1ใบครูมีคำสั่งนะคะ6อยู่6ข้อมีแค่pushกับpopแค่นั้นเองไม่มีอะไรอย่างอื่นเลยpushกับpoh(p)วาดรูปให้ครูหน่อยได้ไหมคะวาดรูปstackในแต่ละข้อทำอย่างไรข้อ1ใช่ไหมคะลอกโจทย์ก่อนpush(10)เพราะฉะนั้นค(า)ื(ม)อ(ี)อะไร10อย่างนี้ใช่ไหมค่ะถัดไปข้อ2pushเท่าไคะ20แต่ละข้อทำต่อเนื่องนะคะpush(20)เพราะฉะนั้2010(นักศึกษา)อยู่บน(อาจารย์)อยู่บนอย่างนี้ทำไปเรื่อยๆจนครบ6ข้อเขียนใส่กระดาษให้ครูหน่อยคราวนี้ข้อ3คือpush(30)ข้อ4คือpopเอาpopตรงไหนออกดีเอาp(ข)o(้)p(อ)ต(ม)ร(ู)ง(ล)ไหนออกไปไม่รูอ(ก)ง(็)ไล่ลงมาก่อนต้องดูก่อนว่าพอpush(30)แล้ว30แล้วเวลาpopเอาอะไรออกสุดท้ายแล้วstackเหลือค่าอะไรบ้างงงไหมค่อยๆทำทีละ1ข้อถูกไหมคะ1push(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นะคะpushpopให้เข้าใจคราวนี้มาดูครู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(ค่าข้อมูลที่จะใส่ไปคืออะไรอันนี้คือpushc(อ)o(น)n(เ)c(ซ)e(ป)p(ต)t(์)ของpushเรารู้แล้วอันนี้คือแปลงมาเป็นcodeของโปรแกรมstackว่างนะคะstackว่างstackคือไม่มีข้อมูลครูถามว่าถ้าstackมันว่างเราสามารถpopได้ไหมถ้stackstackไม่มีจานเลยสักใบนี่จะเอาไปใส่ก๋วยเตี๋ยวได้ไหมไม่ได้ใช่ไหมคะc(อ)o(น)n(เ)c(ซ)e(ป)p(ต)t(์)แบบเดียวกถ้าstackมันว่างแสดงว่ามันไม่มีข้อมูลอะไรแล้วเราก็ต้องโชว์"stackว่าง"หรือ"stackemn(p)tr(y)y(")นะคะเพื่อบอกว่าต่อไปต้องหาข้อมูลมาใส่นะแต่ถ้ามีก็ดึงออกมานะคะถ้ามันยังมีข้อมูลอยู่ในstackเราก็ดึคราวนี้มาดูนะคะจะรู้ได้อย่างไรว่าstackมันว่างก็หาขนาดของlistถูกไหมคะstackมันว่างหรือเปล่าก็listถ้าขนาดเป็นอะไรคะเป็น0แสดงว่ามีข้อมูลไหมถ้าขนาดของlist0แสดงว่ามีขนาดเป็น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ใช่ไหมนะคะกรณีที่ไม่มีวงเล็บอันไหนคือลำดับความสำคัญมากกว่าบวกกับลบเท่ากันทำอะไรก่อนก็ได้อย่างนี้เท่ากันนะคะแต่คูณจะมากกว่าบวกกับลบจะเห็นไหมคะว่าการบวกเลขตรงนี้ถ้าเราเอาใส่ในexcele(ะ)หรือในคอมพิวเตอร์ที่สามารถประมวลผลไม่ใช่เครื่องคิดเลขนะเพราะเครื่องคิดเลขที่(ะ)ตัวถ้าใครเอาเครื่องคิดเลขธรรมดานะมาจิ้มก็ไม่ถูกะต้องเป็นเครื่องคิดเลขวิทยาศาสตร์ที่ใส่เป็นชุดได้นะคะเราบวกลบเลขใช่ไหมคะแล้วคอมพิวเตอร์เราใส่ข้อมูลตัวนี้คอมพิง(์)นี่จะคำนวณให้ได้ไหมได้เอาไปลองtestในexcelนะคะคำนวณได้อย่างไรเขาใช้stackนะคะช่วยในการคำนวณตัวเลขให้ออกมาเป็น13เดี๋ยวรอบหน้านี่จะมีวิธีการคำนวณนะะ(ค)ค(ะ)ว่าคอมพิวเตอร์คำนวณมาได้เลข13นี่คำนวณอย่างไรไม่ได้ง่ายๆเลยนะมีขั้นตอนเยอะมากกว่าจะได้เลข13มาแต่เราทำอย่างไรคะใส่ล(ย)ข(ว)ในexcelออกมาเลยไหมออกมาเลยแต่เราจะมาดูแล้วเบื้องหลังมันคำนวณแบบไหนนะคะรอบหน้าเราคำนวณได้เราต้องรู้ด้วยว่าแล้วคอมพิวเตอร์คำนวณอย่างไรนะคะเดี๋ยวครูจะฝากการบ้านนะทุกคนมีชีตนะคะlistdictionaryนะคะstackเดี๋ยวครูฝากการบ้านกับพี่ปอยง่ายๆไม่ยากเดี๋ยวจะป(p)ร(r)ิ(i)้(n)น(t)มาให้นะคะเป็นการทบทวนเผื่อเวลาสอบนะจะได้เข้าใจนะคะจะได้จำได้เดี๋ยวเจอกันสัปดาห์หน้านะคะเดี๋ยวครูจะฝากการบ้านไว้ให้ค่ะเดี๋ยว...[สิ้นสุดการถอดความ]