map
ฟังก์ชั่นจะมีประโยชน์มากที่นี่ ใช้map
เราสามารถใช้ฟังก์ชั่นใด ๆ กับองค์ประกอบของ iterable แต่ละ
Python 3.x
>>> def my_mul(x,y):
... return x*y
...
>>> a = [1,2,3,4]
>>> b = [2,3,4,5]
>>>
>>> list(map(my_mul,a,b))
[2, 6, 12, 20]
>>>
แน่นอน:
map(f, iterable)
เทียบเท่ากับ
[f(x) for x in iterable]
เพื่อให้เราสามารถแก้ปัญหาของเราผ่าน:
>>> [my_mul(x,y) for x, y in zip(a,b)]
[2, 6, 12, 20]
>>>
ใน Python 2.x map()
หมายถึง: ใช้ฟังก์ชั่นกับแต่ละองค์ประกอบของการทำซ้ำและสร้างรายการใหม่ ใน Python 3.x ให้map
สร้างตัววนซ้ำแทนรายการ
แทนที่จะmy_mul
ใช้ mul
โอเปอเรเตอร์
Python 2.7
>>>from operator import mul # import mul operator
>>>a = [1,2,3,4]
>>>b = [2,3,4,5]
>>>map(mul,a,b)
[2, 6, 12, 20]
>>>
Python 3.5+
>>> from operator import mul
>>> a = [1,2,3,4]
>>> b = [2,3,4,5]
>>> [*map(mul,a,b)]
[2, 6, 12, 20]
>>>
โปรดทราบว่าตั้งแต่map()
สร้างตัววนซ้ำเราจึงใช้*
ตัวดำเนินการแกะกล่องที่ซ้ำได้เพื่อรับรายการ วิธีการคลายออกจะเร็วขึ้นเล็กน้อยจากตัวlist
สร้าง:
>>> list(map(mul,a,b))
[2, 6, 12, 20]
>>>