Ali Ahmed55 نشر 13 مارس أرسل تقرير نشر 13 مارس السلام عليكم هو مش الarray دي كده عبار عن Static Array في الباثيون ؟ دي array = [1,2,3,4,5] 4 اقتباس
0 Mustafa Suleiman نشر 13 مارس أرسل تقرير نشر 13 مارس تلك ليست مصفوفة ثابتة كما في لغات البرمجة الأخرى، ففي بايثون تسمى قائمة List وهي مصفوفة ديناميكية أي يتغير حجمها. فالمصفوفة الثابتة يكون حجمها ثابتاً ومحدداً منذ تعريفها، ولا يتغير بعد ذلك، أما القائمة في بايثون فهي ديناميكية، أي تستطيع تغيير حجمها بسهولة، وإضافة عناصر جديدة إليها أو حذف عناصر منها، وسيتغير حجمها تلقائياً. ويوجد ما نستطيع اعتباره قريباً من المصفوفة الثابتة، ولكن ليس بنفس الطريقة التي توجد بها في لغات مثل C أو Java، وذلك من خلال استخدام وحدة تسمى array لتكوين مصفوفات من أنواع بيانات محددة وثابتة. أي نستطيع تغيير حجمها ولكن النوع ثابت كأعداد صحيحة فقط، لاحظ i تعني الأعداد الصحيحة ونستطيع الإضافة: import array fixed_array = array.array('i', [1, 2, 3, 4, 5]) fixed_array.append(6) والأقرب للمفهوم هو الصفوف tuples فهي هياكل بيانات غير قابلة للتغيير immutable ولا تستطيع تغيير محتواها أو حجمها بعد الإنشاء. fixed_array = (1, 2, 3, 4, 5) لكن الصف هيكل بيانات ليس مصممًا خصيصًا للكفاءة الرقمية أو العمليات الحسابية المكثفة مثل array.array أو مكتبة NumPy التي توفر نوع ndarray وهو أقرب إلى المصفوفات في لغات مثل Fortran و MATLAB، حيث الصفوف مصممة أكثر لتمثيل مجموعات ثابتة من البيانات، بغض النظر عن نوعها. 1 اقتباس
0 ياسر مسكين نشر 13 مارس أرسل تقرير نشر 13 مارس في لغة بايثون القائمة المعرفة كالتالي: array = [1, 2, 3, 4, 5] ليست مصفوفة ثابتة بل هي مصفوفة ديناميكية مما يعني أنه بعد إنشاء القائمة يمكنك إضافة أو إزالة أو تعديل عناصرها دون الحاجة لتحديد حجم ثابت مسبقا على سبيل المثال يمكنك إضافة عنصر باستخدام array.append(6) فتصبح القائمة: array = [1, 2, 3, 4, 5, 6] أو إزالة عنصر باستخدام array.pop(). وفي لغات أخرى مثل C أو Java تكون المصفوفات الثابتة ذات حجم محدد عند إنشائها ولا يمكن تغييره دون إنشاء مصفوفة جديدة على سبيل المثال في لغة C يمكنك تعريف مصفوفة كالتالي: int array[5]، حيث لا يمكن تغيير حجمها لاحقا. لا تحتوي بايثون على نوع مدمج للمصفوفة الثابتة، إذ أن القوائم مصممة لتكون أكثر مرونة وإذا كنت بحاجة إلى تسلسل غير قابل للتعديل من العناصر، يمكنك استخدام ال tuple، والذي يتم تعريفه بالشكل التالي: tuple_array = (1, 2, 3, 4, 5) لاحظ استخدمنا الأقواس ( ) بدلا من [ ]. 1 اقتباس
0 Chihab Hedidi نشر 13 مارس أرسل تقرير نشر 13 مارس لا هذا ليس Static Array بالمعنى التقليدي مثل الموجود في C أو Java، بل هي ديناميكية و الفرق بينهما هو أن Static Array حجمها ثابت ولا يمكن تغييره بعد الإنشاء، كما يتم تخصيص الذاكرة لها مسبقا، بينما Dynamic Array يمكن تعديل حجمها أي إضافة وحذف عناصر بحرية، و يتم إعادة تخصيص الذاكرة عند الحاجة. بالنسبة ل list في بايثون هي مصفوفة ديناميكية، مما يعني أنها تبدأ بحجم معين، وإذا أضفت المزيد من العناصر، يتم إعادة تخصيص ذاكرة أكبر ونقل البيانات إلى موقع جديد، و هذا يشبه ArrayList في Java. أما إذا أردت مصفوفة ثابتة في بايثون يمكنك استخدام المصفوفات من مكتبة array: import array arr = array.array('i', [1, 2, 3, 4, 5]) أو يمكنك استخدام numpy لمصفوفات أكثر كفاءة، ولكن حتى في numpy، إذا أردت حجمًا ثابتا، عليك تجنب resize أو append. 1 اقتباس
0 محمد عاطف17 نشر 13 مارس أرسل تقرير نشر 13 مارس وعليكم السلام ورحمة الله وبركاته. في بايثون لا يوجد قوائم ثابته فالمصفوفة التي أرفقتها لا تعتبر "Static Array" مثل باقي اللغات الأخرى كما في c و c++ . حيث في بايثون النوع الذي نستخدمه هنا هو قائمة (List) وهي عبارة عن هيكل بيانات ديناميكي أى أنه يمكن تعديل حجمها بسهولة إضافة أو حذف عناصر دون الحاجة إلى تحديد حجمها في بداية الكود . وبالتالي هي ليست ثابتة (static) في الذاكرة أو في الحجم مما يمكنك من إضافة أو إزالة عناصر منها بعد إنشائها. 1 اقتباس
0 Ali Ahmed55 نشر 13 مارس الكاتب أرسل تقرير نشر 13 مارس شكراا جدا جدا لتوضيح عشان ان ما كانتيش عارف افرق مابين الlist الموجود في باثيون وبين الarray في C جزاكم الله كل خير 1 اقتباس
السؤال
Ali Ahmed55
السلام عليكم
هو مش الarray دي كده عبار عن Static Array في الباثيون ؟
دي
5 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.