starmap تفك عناصر الزوج إلى وسيطين لدالتنا؛ map بمدخل واحد تمرر الزوج نفسه. [1]
الخلاصة السريعة
لا؛ تفك الزوج إلى وسيطين هنا. [1]
- starmap تفك عناصر الزوج إلى وسيطين لدالتنا؛ map بمدخل واحد تمرر الزوج نفسه. [1]
- على CPython 3.12.14، combine(x,y) تجمع العددين وتسجل الاستدعاء؛ pairs تساوي [(2,5),(8,11)]. [1]
- list(starmap(combine,pairs)) تعطي [7,19]؛ السجل [(2,5),(8,11)]، مثل استدعاء الدالة بعنصري كل زوج. [1]
- list(map(combine,pairs)) ترفع TypeError قبل دخول دالتنا، لغياب الوسيط الثاني؛ السجل فارغ. [1]
- تحكم بمدخلين: list(map(combine,[2,8],[5,11])) تعطي [7,19]. نفرغ السجل قبل المقارنة؛ شكل المدخل يحدد طريقة تمريره. [1]
الزوج والوسيط
starmap تفك عناصر الزوج إلى وسيطين لدالتنا؛ map بمدخل واحد تمرر الزوج نفسه. [1]
دالتنا والمدخل
على CPython 3.12.14، combine(x,y) تجمع العددين وتسجل الاستدعاء؛ pairs تساوي [(2,5),(8,11)]. [1]
تفكيك الأزواج
list(starmap(combine,pairs)) تعطي [7,19]؛ السجل [(2,5),(8,11)]، مثل استدعاء الدالة بعنصري كل زوج. [1]
from itertools import starmap calls=[] def combine(x,y): calls.append((x,y)) return x+y pairs=[(2,5),(8,11)] print(list(starmap(combine,pairs)),calls) [1]
![map بمدخلين تعطي [7,19].](https://images.bahralolom.com/assets/local-2000-20261012/BA-1509/python-star-arguments-values.png)
المقارنة والتحكم
list(map(combine,pairs)) ترفع TypeError قبل دخول دالتنا، لغياب الوسيط الثاني؛ السجل فارغ. [1]
calls.clear() try: list(map(combine,pairs)) except TypeError: print("TypeError",calls) print(list(map(combine,[2,8],[5,11]))) [1]
تحكم بمدخلين: list(map(combine,[2,8],[5,11])) تعطي [7,19]. نفرغ السجل قبل المقارنة؛ شكل المدخل يحدد طريقة تمريره. [1]
المراجع
للتوسع: لغات البرمجة.
أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.
