> For the complete documentation index, see [llms.txt](https://docs.augelab.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.augelab.com/arabic/alblwkat-alwzyfyh/blocks-reference/data-logic/data-operations/list-operations.md).

# List Operations

توفّر هذه الدالة مجموعة من عمليات التعامل الشائعة مع القوائم في واجهة واحدة سهلة الاستخدام. اختر عملية من القوائم المنسدلة وسيتكيّف البلوك تلقائيًا مع المدخلات والمخرجات المناسبة، بحيث يمكنك العمل مع القوائم (إنشاء، استعلام، تعديل، دمج، ترشيح والمزيد) بدون كتابة أي كود.

## 📥 المدخلات (Inputs)

تتغير المدخلات المتاحة ديناميكيًا بناءً على العملية المختارة.

`List` مدخل قائمة عام يُستخدم في العديد من العمليات.

`Element` عنصر مفرد للإضافة أو الإزالة أو البحث.

`Index` فهرس صحيح للعمليات مثل `Get`, `Set`, `Insert` أو `Pop`.

`List(s)` عند دمج قوائم متعددة (مثل `Pair`) يستقبل هذا المقبس قائمة من القوائم.

`List (String)` نص واحد يُستخدم بواسطة الطريقة `Create` لبناء قائمة من سلسلة مفصولة بفواصل.

(تظهر أسماء مآخذ إدخال أخرى حسب الحاجة وفقًا للطريقة المختارة.)

## 📤 المخرجات (Outputs)

المخرجات أيضًا ديناميكية وتعكس الطريقة المختارة.

`List` القائمة المرجعة بعد عمليات التعديل (مثلاً append، extend، remove).

`Filtered List` نتيجة عملية الترشيح.

`Element` عنصر مفرد يتم إرجاعه بواسطة `Get`, `Min`, `Max`، إلخ.

`Size` الطول المرجع بواسطة طريقة `Len`.

`Index` فهرس عنصر لطريقة `Index`.

(تظهر مآخذ مخرجات إضافية حسب الطريقة المختارة.)

## 🕹️ الضوابط (Controls)

`Select a method` قائمة منسدلة مع زر إجراء صغير. اختر عملية القوائم المطلوبة (أمثلة: append, extend, filter, create, len, min, max, slice, pair). يقوم البلوك بتحديث المآخذ تلقائيًا عند تغيير الاختيار.

`Info` منطقة نص صغيرة تعرض تلميحات الاستخدام للطريقة المختارة (على سبيل المثال، تذكير بأن شروط الفلترة يجب أن تكون قائمة بوليانية بنفس الطول).

## 🎨 الميزات (Features)

* مآخذ ديناميكية: تُنشأ أو تُزال المآخذ تلقائيًا عند اختيار طريقة، مما يحافظ على واجهة مرتبة.
* مجموعة عمليات واسعة: يدعم الإنشاء، الاستعلام، التعديل، والدمج (append, extend, insert, pop, remove, filter, slice, sort, reverse, sum, min/max, index, set, pair، والمزيد).
* تحقق مدمج: ينبه عند خروج الفهارس عن النطاق أو عند عدم تطابق أحجام القوائم لعمليات مثل filter أو pair.
* الإنشاء من نص: بناء قائمة بسرعة من سلسلة مفصولة بفواصل باستخدام طريقة `Create`.

## ⚙️ آلية التشغيل (Running mechanism)

1. اختر طريقة عبر التحكم `Select a method`.
2. يقوم البلوك بتحديث مآخذ المدخلات والمخرجات ليتوافق مع العملية المحددة.
3. قدّم المدخلات المطلوبة عن طريق توصيل بلوكات أخرى أو إدخال قيم يدويًا.
4. عند تشغيل السيناريو، ينفّذ البلوك العملية المختارة ويوفّر النتيجة على مآخذ المخرجات المحددة.
5. إذا كانت المدخلات غير صالحة (مثل اختلاف الأحجام أو فهرس غير صالح)، يعرض البلوك رسالة خطأ ويعيد نتيجة افتراضية آمنة عند الحاجة.

## 📝 تعليمات الاستخدام (Usage instructions)

1. افتح البلوك واختر العملية المطلوبة من `Select a method`.
2. اطلع على نص `Info` الظاهر للحصول على إرشادات سريعة حول تلك الطريقة.
3. وصل المدخلات المناسبة (مثال: وصل قائمة وعنصر لـ `Append`).
4. شغّل السيناريو واقرأ النتائج من مآخذ المخرجات التي ظهرت للطريقة المختارة.

## 💡 نصائح وحيل (Tips and Tricks)

`Create` استخدمه مع بلوك `String Input` لتمكين المستخدمين من إدخال عناصر مفصولة بفواصل، ثم تحويلها تلقائيًا إلى قائمة.

`Filter` و `Filter Inverse` عند ترشيح البيانات، أنتج قائمة الشروط باستخدام بلوكات منطقية مثل `Equals`, `Greater` أو `Less` ثم أدخل تلك القائمة البوليانية في هذا البلوك لاستخراج العناصر المطابقة.

`Pair` مفيد لدمج تدفقات بيانات موازية. يعمل جيدًا مع مخرجات من `Object Detection` أو `Object Detection - Custom` عندما تملك قوائم موازية (مثلاً، المواضع والأحجام) وترغب بضمها معًا للتسجيل أو التصدير لاحقًا.

`Get`, `Index`, `Min`, `Max` ادمج مع `Get Element`, `Exclude Nones` أو `Replace None` لتنقية المدخلات قبل الاستعلام أو التجميع.

`Sum`, `Len` استخدم مع `Scope` أو `CSV Export` لجمع ملخصات عددية للرسم البياني أو التسجيل.

`Slice` عند معالجة دفعات من العناصر، ادمج مع `Debatch` أو `Batch Processing` للتكرار ومعالجة القوائم الفرعية.

عام

* استخدم `Data Memory` عندما تريد الحفاظ على قائمة ثابتة حتى يصل تحديث صريح.
* أنشئ أنابيب تسجيل أو تصدير: بعد إعادة هيكلة القوائم هنا، أرسل النتائج إلى `Data to JSON` أو `CSV Export` للتخزين الخارجي.
* عند بناء قوائم من مصادر نصية، استخدم `Find Substring` و `String Merge` لتحضير السلاسل قبل استخدام طريقة `Create`.

(جهّز هذه البلوكات المرتبطة في مساحة العمل لبناء أنابيب قوية)

## 🛠️ استكشاف الأخطاء وإصلاحها (Troubleshooting)

`Filter` وعدم تطابق الأحجام إذا ظهرت لك رسالة خطأ حول عدم تساوي الأحجام، تأكد أن قائمة الشروط لها نفس عدد العناصر كقائمة البيانات. استخدم `Get Batch Size` أو `Len` للتحقق من الأحجام.

`Index out of range` بالنسبة للطرق التي تأخذ فهرسًا (`Get`, `Set`, `Insert`, `Pop`)، تحقق من حدود الفهارس قبل التوصيل. استخدم `Len` أو `Get Batch Size` للحصول على نطاقات صالحة.

`Unexpected types` بعض العمليات تتوقع عناصر رقمية أو قابلة للمقارنة (لـ `Sum`, `Min`, `Max`, `Sort`). استخدم `Replace None` و `Exclude Nones` لتنظيف القائمة أولًا.

`Creating lists from text` عند استخدام `Create`, تأكد أن العناصر مفصولة بفواصل. يتم اقتطاع الفراغات الزائدة تلقائيًا، لكن الرموز غير الرقمية تبقى نصوصًا — تحقق مرتين باستخدام `Find Substring` أو `String Operations` إذا كنت بحاجة إلى تحليل إضافي.

إذا واجهت مشكلات مستمرة، اطلع على تلميح `Info` للطريقة المختارة — غالبًا ما يحتوي على إرشادات سريعة خاصة بالطريقة.
