تقنية

memoryview في بايثون: لماذا يفشل v[0] وينجح v[0,1]؟

الفهرس الواحد يفشل في المثال.
الفهرس المفرد.

في المثال، فهرس واحد لا يعيد صفًا من العرض. [1]

الخلاصة السريعة

v[0,1] تقرأ عنصرًا بفهرسين؛ v[0] تفشل هنا. [1]

  • في المثال، فهرس واحد لا يعيد صفًا من العرض. [1]
  • مع صيغة أصلية مدعومة، العرض متعدد الأبعاد يقبل tuple من أعداد صحيحة بعدد الأبعاد. [1]
  • مثال مؤلف على CPython 3.12.14: v=memoryview(b"GHIJKL").cast("B",shape=[2,3])؛ صيغة B، وصفان وثلاثة أعمدة. [1]
  • v[0] ترفع NotImplementedError هنا؛ v[0,1] تعطي 72: عنصر الصف 0 والعمود 1، لا صفًا كاملًا. [1]
  • تحكم مستقل: b"GHIJKL"[1] تعطي 72 أيضًا؛ بقي الأصل والشكل (2,3) كما كانا. [1]

صف أم عنصر

في المثال، فهرس واحد لا يعيد صفًا من العرض. [1]

عدد الفهارس

مع صيغة أصلية مدعومة، العرض متعدد الأبعاد يقبل tuple من أعداد صحيحة بعدد الأبعاد. [1]

عرض ثنائي الأبعاد

مثال مؤلف على CPython 3.12.14: v=memoryview(b"GHIJKL").cast("B",shape=[2,3])؛ صيغة B، وصفان وثلاثة أعمدة. [1]

v[0] -> NotImplementedError [1]

الصف 0 والعمود 1 يحددان العنصر 72.
عنصر بفهرسين.

عنصر وتحكم

v[0] ترفع NotImplementedError هنا؛ v[0,1] تعطي 72: عنصر الصف 0 والعمود 1، لا صفًا كاملًا. [1]

v[0,1] -> 72 [1]

تحكم مستقل: b"GHIJKL"[1] تعطي 72 أيضًا؛ بقي الأصل والشكل (2,3) كما كانا. [1]

المراجع

  1. Python — memoryview indexing

للتوسع: لغات البرمجة.

أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.