Page 106 - python
P. 106
80
ผลลัพธ :
{'one': 'หนึ่ง', 'two': 'สอง', 'three': 'สาม', 'four': 'สี่', 'five': 'หา'}
ั
ตัวอยางที่ 7.6 ตัวแปรดิกชันนารี 2 ตัว คือ d1 และ d2 นํามารวมกนดวยคําสั่ง update()
ั
ี
ิ
ั
ั
จะเปนการรวม ตัวแปรดกชันนารเขาดวยกน ผลลพธ d1 มีคาเทากบ {'one': 'หนึ่ง', 'two': 'สอง', 'three':
'สาม', 'four': 'สี่', 'five': 'หา'}
7.7 คําสั่ง map และ lambda
ั
ั
่
่
ี
่
ํ
็
คาสัง map() ทําหนาทแมพฟงกชนกบอารกวเมนตเขาดวยกน
ั
ิ
คาสัง lambda คือ การสรางฟงกชนทีไมมีชอ (Anonymous Function)
่
ํ
่
่
ื
ั
่
ตัวอยางที่ 7.7 การใชคําสั่ง map และ lambda
x = [ 2 , 3 , 4, 2, 1 ]
list(map(lambda a:a**2, x))
ผลลัพธ :
[4, 9, 16, 4, 1]
ตัวอยางที่ 7.7 การนําสมาชิกภายในตัวแปร x ซึ่งมีคา [ 2 , 3 , 4, 2, 1 ] มายกกําลังสอง ผลลัพธ
จะมีคา [ 2 , 3 , 4 , 2 , 1 ] เมื่อคําสั่ง lambda a:a**2 หมายถง รับคามาเขามาเกบในตัวแปร a
ึ
็
จากนั้น ยกกําลังสองดวยคําสั่ง a**2 คําสั่ง map จะทาการแม็พคาตัวแปรใหกบฟงกชั่น ในตัวอยางนี้
ั
ํ
ฟงกชั่น คือ lambda a:a**2 และตัวแปร คือ x ดังนั้น คาตัวแปรทอยูใน x แตละตัวจะถูกสงเขาไปให
ี่
ั
ี
ฟงกชน lambda a:a**2 ผลลัพธจึงมคาเทากบ [4, 9, 16, 4, 1]
ั
่
ตัวอยางที่ 7.8 การใช map และ lambda กับตัวแปรลีสต 2 ชุด
x = [ 2 , 3 , 4, 2, 2 ]
y = [ 2, 1, 2, 4, 5 ]
list(map(lambda a,b:a+b , x, y))
ผลลัพธ :
[4, 4, 6, 6, 7]
ตัวอยางที่ 7.8 สมาชิกในตัวแปร x และ y จะถูกนํามาบวกกันทีละคู ผลลัพธจะมีคา [2+2, 3+
1, 4+2, 2+4, 2+5] ฟงกชั่นที่สรางขึ้น คือ lambda a,b : a+b หมายถึง ฟงกชั่นรับอารกิวเมนต 2 ตัว คือ
a และ b และคืนคาเปนผลรวม a+b ฟงกชั่น map() จะแม็พฟงกชั่นและตัวแปรเขาดวยกน
ั
ในตัวอยางนี้มีตัวแปร 2 ชุด ดังนั้นเรียกใชดวยคําสั่ง map(function, x,y) เมื่อ function คือ lambda a,
้
่
่
ี
ํ
b:a+b จากนัน ผลลัพธทไดแปลงเปนตัวแปรลีสตดวยคาสง list() ผลลพธมีคา [4, 4, 6, 6, 7]
ั
ั
7.8 คําสั่ง filter
่
ี
่
คาสัง filter() ทําหนาทกรองคาออกมาจากตัวแปรลีสต โดยผลลัพธที่ไดจะกรอกตามเงื่อนไข ดังนี้
ํ