اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

كل منهما مفهوم مختلف تماماً عن الآخر.

الصفوف تستعمل لتمثيل شيء ما، مثلاً صف سيارة يستعمل لتمثيل سيارة بحيث نضع صفات السيارة على شكل متغيرات ضمن هذا الصف و ما يمكن للسيارة القيام به (الوظائف التي يمكنها القيام بها أو أي شيء يمكنها القيام به) على شكل توابع ضمن هذا الصف.

بالتالي الصف هو جزء مما يدعى OOP (Object Orietned Programming)  و الذي يرتكز على تمثيل مختلف الكيانات في البرنامج على شكل أغراض، ستتعلم لاحقاً عنه.

بينما القوائم هي عبارة عن مجموعة من القيم المخزنة بشكل متسلسل، مثلاً يمكن أن يكون لدينا قائمة علامات الطالب في مجموعة مواد، أو قائمة من الطلاب و غيرها الكثير.

و بالتالي كما نلاحظ فإن القوائم هي أحد أنواع هياكل البيانات، بينما الصف هو مفهوم.

  • 0
نشر

كما اخبرك الاستاذ قيس فالصفوف (classes) والقوائم (lists) هما مفهومان مختلفان في البرمجة.

الصفوف هي بنية بيانات تستخدم لتعريف كائنات (objects) في البرمجة الكائنية التوجه (Object-Oriented Programming). حيث يحتوي الصنف على مجموعة من المتغيرات والطرق (أو الوظائف) التي تحدد خصائص وسلوك الكائنات التي يتم إنشاؤها من هذا الصنف.

من ناحية أخرى، القوائم هي بنية بيانات تستخدم لتخزين مجموعة من العناصر في ترتيب معين. يمكن أن تحتوي القوائم على عناصر من نفس النوع أو من أنواع مختلفة، ويمكن إضافة وحذف العناصر من القائمة والبحث عن عناصر فيها.

باختصار، الصفوف هي بنية بيانات تستخدم لتعريف كائنات، بينما القوائم هي بنية بيانات تستخدم لتخزين مجموعة من العناصر.

 هنا مثال بسيط للصفوف في لغة البرمجة بايثون:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def greet(self):
        print(f"مرحباً, اسمي {self.name} وعمري {self.age} سنة")

p1 = Person("علي", 30)
p1.greet()

في هذا المثال، قمنا بإنشاء صنف باسم Person يحتوي على وظيفتين : __init__ و greet.

الوظيفة __init__ هي طريقة خاصة تستخدم لتهيئة الكائن عند إنشائه. في هذه الحالة، نقوم بتعريف اسم الشخص وعمره.

الوظيفة greet هي طريقة عادية تستخدم لطباعة التحية.

بعد إنشاء الصنف، قمنا بإنشاء كائن من هذا الصنف باستخدام الكود  وأعطيناه اسم “علي” وعمر 30 سنة.

 p1 = Person("علي", 30)

بعد ذلك، استخدمنا الطريقة greet لطباعة التحية.

هنا مثال بسيط للقوائم في لغة البرمجة بايثون:

my_list = [1, 2, 3, 4, 5]
print(my_list)

my_list.append(6)
print(my_list)

my_list.remove(3)
print(my_list)

my_list.insert(2, 7)
print(my_list)

في هذا المثال، قمنا بإنشاء قائمة باسم my_list تحتوي على العناصر 1, 2, 3, 4, 5. ثم قمنا باستخدام بعض الطرق المتاحة للقوائم للتعامل مع العناصر فيها.

الوظيفة append تستخدم لإضافة عنصر جديد إلى نهاية القائمة.

بينما الوظيفة remove تستخدم لحذف عنصر من القائمة.

و الوظيفة insert تستخدم لإضافة عنصر جديد إلى موقع معين في القائمة.

وقمنا بطباعة القائمة بعد كل تعديل.

  • 0
نشر

في البرمجة، القوائم (Arrays) والصفوف (Lists) هما نوعان من هياكل البيانات المستخدمة لتخزين مجموعة من العناصر. لكنهما يختلفان في بعض الجوانب الأساسية. 

القوائم (Arrays)

  • التصنيف القوائم هي هياكل ثابتة الحجم، مما يعني أن حجم القائمة يتم تعيينه عند إنشائها ولا يمكن تغييره لاحقًا، إلا بإنشاء قائمة جديدة بحجم آخر.
  • المساحة الفارغة يتم تخصيص مساحة ثابتة في الذاكرة للقوائم، بغض النظر عن عدد العناصر المخزنة فيها. هذا يمكن أن يؤدي إلى تضييع بعض المساحة في الذاكرة إذا كان حجم القائمة أكبر من عدد العناصر الفعلي.
  • النوع تكون جميع عناصر القائمة من نفس النوع (مثل جميع الأرقام أو جميع السلاسل النصية).
  • الوصول يتم الوصول إلى العناصر في القائمة عن طريق استخدام مؤشر (index) يبدأ عادة من الصفر. على سبيل المثال، للوصول إلى العنصر الأول في القائمة، يتم استخدام الفهرس 0.
  • التعامل مع العناصر قد تكون عمليات إدراج وحذف العناصر في القوائم مكلفة من حيث الوقت بالنسبة للقيم الكبيرة، لأنه قد يتطلب إعادة ترتيب العناصر.

الصفوف (Lists)

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

في بعض لغات البرمجة، مثل Python، تُعتبر القوائم مرنة وديناميكية الحجم وتتيح تخزين عناصر مختلفة الأنواع، ويمكن تعيين حجمها بشكل أوتوماتيكي، مما يجعلها تشبه الصفوف في هذه الحالة.

  • 0
نشر

أعتقد أنك تتحدث عن ال list و ال tuples في لغة البرمجة python و لتوضيح الفرق بين الصفوف والقوائم في Python، يمكننا الاستعانة بالأمثلة التالية:

المرونة:

تعريف الصفوف والقوائم:

my_tuple = (1, 2, 3)
my_list = [1, 2, 3]

عند محاولة تغيير القيمة الثانية في my_tuple، ستحصل على خطأ TypeError حيث لا يمكن تعديل الصفوف بعد تعريفها:

my_tuple[1] = 4   # TypeError: 'tuple' object does not support item assignment

بينما يمكن تعديل العناصر في my_list بحرية

الأداء:

يمكن قياس الوقت المستغرق للوصول إلى عنصر محدد في الصف والقائمة باستخدام وظيفة timeit() المدمجة في Python:

و ستظهر النتائج أن الوصول إلى العنصر الأول في الصف أسرع بشكل ملحوظ من الوصول إلى العنصر الأول في القائمة:

الاستخدامات:

تعريف الصفوف والقوائم

يمكن استخدام الصفوف لتمثيل الأشياء التي لا يجب تعديلها مثل الأسماء الكاملة والأعمار:

# تمثيل معلومات شخص باستخدام الصف
person = ("John", "Doe", 25)

ويمكن استخدام القوائم لتمثيل الأشياء التي يمكن تعديلها مثل الأرقام:

# قائمة الأرقام
numbers = [1, 2, 3, 4, 5]

بشكل عام، يجب استخدام الصفوف في الحالات التي لا يجب تغيير البيانات، ويجب استخدام القوائم في الحالات التي يمكن تعديل البيانات.

  • 0
نشر

أنت تتحدث عن بايثون وبها تُعرف كل من القوائم والصفوف باسم «المجموعات» وبالطبع هناك بعض الاختلافات الرئيسية:

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

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

متى تستخدم القائمة؟

عندما تحتاج إلى بنية بيانات قابلة للتغيير يمكن أن تحتوي على عناصر من أنواع مختلفة، أي مثل استخدام قائمة لتخزين قائمة المهام أو قائمة التسوق أو قائمة الطلاب في الفصل الدراسي أو قائمة المنتجات في متجر.

متى تستخدم الصف؟

في حال أنك تحتاج إلى بنية بيانات غير قابلة للتغيير يمكن أن تحتوي على عناصر من نوع واحد فقط، مثلاً صف لتخزين قائمة الطلاب في الفصل الدراسي أو قائمة المنتجات في متجر.

وإليك بعض الأمثلة:

# هذا مثال على قائمة تحتوي على أسماء الطلاب في الفصل الدراسي:
students = ["John", "Mary", "Peter", "Susan"]

# هذا مثال على صف يحتوي على علامات الطلاب في الفصل الدراسي:
grades = [90, 80, 70, 60]

# هذا مثال على كيفية إضافة عنصر إلى قائمة:
students.append("Alice")

# هذا مثال على كيفية حذف عنصر من قائمة:
students.remove("Mary")

# هذا مثال على كيفية تعديل عنصر في قائمة:
students[0] = "Jane"

# هذا مثال على كيفية إنشاء صف جديد من قائمة:
grades_2 = list(grades)

 

  • 0
نشر

القوائم والصفوف هما مصطلحان يتم استخدامهما في سياق مختلف، وهما غالبًا ما يُشار إليهما في عدة مجالات. دعنا نوضح الاختلافات بينهما:

1. القوائم (Lists):
القوائم هي هياكل بيانات تحتوي على مجموعة من العناصر التي يتم تنظيمها في ترتيب معين. يمكن أن تكون العناصر في القوائم متنوعة، مثل أعداد صحيحة، نصوص، كائنات، إلخ. تكون القوائم غالبًا متغيرة الحجم، مما يعني أنه يمكن إضافة وحذف العناصر منها بحرية. عادةً ما يكون لكل عنصر في القائمة موضع محدد يُعرف باسم "فهرس" أو "اندكس" (index) يبدأ عادة من الصفر. القوائم تستخدم بشكل واسع في برمجة الحاسوب والعديد من التطبيقات.

مثال على قائمة من الأرقام:
[1, 3, 5, 7, 9]

2. الصفوف (Rows):
الصفوف عادة ما تكون مرادفة للأفقية، وهي مصطلح يُستخدم بشكل أساسي في الجداول وقواعد البيانات. تُمثل الصفوف السجلات الفردية في الجدول، وتحتوي على مجموعة من البيانات المتعلقة بمدخل واحد في الجدول. وبما أن الجداول تكون ثنائية الأبعاد، فتحتوي على صفوف وأعمدة، حيث يمثل كل صف سجلًا فرديًا ويحتوي على بيانات مرتبطة بهذا السجل.

مثال على جدول يحتوي على صفوف:
| الاسم  | العمر | المدينة       |
|--------|----  |-----------    |
| أحمد   | 30  | القاهرة        |
| محمد  | 25 | الرياض        |
| ليلى     | 28   | دبي           |

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

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...