في بيثون ، هناك وظيفتان لفرز القوائم-فرز () وفرزها (). يبدو أن هذه الوظائف تفعل الشيء نفسه ، ولكن في الواقع لديهم اختلافات كبيرة تستحق المعرفة من أجل اختيار الوظيفة المناسبة لحالتك.
تعدل وظيفة الفرز() القائمة الأصلية عن طريق إعادة ترتيب العناصر بترتيب تصاعدي أو تنازلي. يمكن أن يكون هذا مفيدا إذا كنت تريد تغيير القائمة الأصلية. ومع ذلك ، إذا كنت بحاجة إلى الاحتفاظ بالتسلسل الأصلي للعناصر ، فيجب عليك استخدام الوظيفة المصنفة (). يقوم بإنشاء نسخة مرتبة من القائمة دون تغيير النسخة الأصلية.
من المهم ملاحظة أن الدالة المصنفة() ترجع قائمة جديدة ، لذلك عند استخدامها ، يجب تعيين النتيجة لمتغير جديد أو استخدامها مباشرة. في المقابل ، تقوم وظيفة الفرز() بإرجاع لا شيء ، لذلك لا يمكن استخدامها إلا كطريقة قائمة.
على سبيل المثال ، إذا كان لديك قائمة بالأرقام: الأرقام = [3, 1, 4, 2], وتريد فرزها بترتيب تصاعدي ، يمكنك استخدام الوظيفة المصنفة (): أرقام مصنفة = مرتبة(أرقام). الآن ستحتوي الأرقام المصنفة على نسخة مرتبة من القائمة الأصلية ، وستظل الأرقام دون تغيير.
لذلك ، إذا كنت بحاجة إلى تغيير القائمة الأصلية ، فاستخدم وظيفة الفرز (). إذا كنت بحاجة إلى حفظ القائمة الأصلية وإنشاء قائمة مرتبة جديدة ، فاستخدم الوظيفة المصنفة (). ستسمح لك معرفة هذه الاختلافات باختيار الوظيفة المناسبة لحل مشكلتك بنجاح.
- فرز وفرزها: الاختلافات الرئيسية
- كيفية الاختيار بين الفرز والفرز
- فرز
- مرتبة
- الاختيار بين الفرز والفرز
- أمثلة على استخدام الفرز
- أمثلة على الاستخدام المصنف
- فرز قائمة الأرقام:
- فرز صف:
- فرز قائمة السلاسل بالترتيب الأبجدي:
- فرز قائمة السلاسل حسب طول العناصر:
- فرز القاموس حسب القيمة:
- سؤال وجواب
- ما هو الفرق بين وظائف فرزها وفرزها في بيثون?
- ما هي الوظيفة الأفضل لاستخدامها لفرز القائمة-فرز أو فرز?
- ما الحجج التي يمكن تمريرها إلى نوع () وظيفة?
- ما الحجج التي يمكن تمريرها إلى فرز () وظيفة?
- كيف تعمل الوسيطة الرئيسية عند فرز قائمة?
- كيف يمكنني اختيار ترتيب الفرز المناسب-تصاعدي أو تنازلي?
فرز وفرزها: الاختلافات الرئيسية
الفرز والفرز هما وظيفتان في لغة برمجة بايثون تسمح لك بفرز العناصر في قائمة أو تسلسل آخر قابل للتكرار. يمكن استخدامها على حد سواء لترتيب العناصر في مثل هذه الطريقة التي تتبع ترتيب معين.
ومع ذلك ، لديهم بعض الاختلافات التي من المهم مراعاتها عند اختيار واحد منهم:
- مرتبة هي وظيفة تقوم بإنشاء قائمة جديدة تحتوي على عناصر مرتبة من القائمة الأصلية أو تسلسل متكرر. لا يغير القائمة الأصلية.
- الفرز هو طريقة تعدل القائمة الأصلية عن طريق فرز عناصرها بترتيب معين. فإنه لا إنشاء قائمة جديدة.
- عند استخدام الدالة التي تم فرزها ، من الضروري تخزين قيمة الإرجاع في متغير من أجل الوصول إلى القائمة التي تم فرزها. في حالة استخدام طريقة الفرز ، لا توجد قيمة إرجاع ، حيث تحدث التغييرات مباشرة في القائمة نفسها.
- يمكن تطبيق الدالة المصنفة على أي تسلسل قابل للتكرار ، على سبيل المثال ، الصفوف أو السلاسل ، ولا يمكن استخدام طريقة الفرز إلا للقوائم.
فيما يلي أمثلة على استخدام كلتا الوظيفتين:
باستخدام فرز:
س وظيفة = [3, 1, 4, 2, 5]
# حفظ قيمة الإرجاع إلى متغير جديد
طباعة (مصنفة) # مخرجات [1, 2, 3, 4, 5]
باستخدام طريقة الفرز:
عاشرا = [3, 1, 4, 2, 5]
س. فرز () # يعدل القائمة
نفسها طباعة (س) # المخرجات [1, 2, 3, 4, 5]
بناء على احتياجاتك وتفضيلاتك المحددة ، قد تحتاج إلى استخدام الوظيفة المصنفة أو طريقة الفرز. كل من وظائف لها مزاياها ويمكنك اختيار واحد الذي هو الأنسب لحالة الاستخدام الخاصة بك.
كيفية الاختيار بين الفرز والفرز
الفرز والفرز هما وظيفتان مدمجتان في لغة برمجة بايثون تستخدمان لفرز العناصر في مجموعات البيانات مثل القوائم أو المجموعات. ومع ذلك ، لديهم بعض الاختلافات والاختيار بينهما يعتمد على المتطلبات المحددة للبرنامج.
فرز
تقوم وظيفة الفرز بالفرز مباشرة في جمع البيانات المصدر. يغير ترتيب العناصر في المجموعة دون إنشاء كائن جديد. لهذا السبب ، يكون الفرز أكثر كفاءة لمجموعات البيانات الكبيرة ، لأنه لا يتطلب ذاكرة إضافية لإنشاء مجموعة مرتبة جديدة.
مثال على استخدام الفرز:
أرقام = [4, 2, 1, 3]
أرقام.فرز()
طباعة (أرقام) # [1, 2, 3, 4]
مرتبة
تقوم الدالة المصنفة بإنشاء مجموعة جديدة من البيانات المصنفة ، مع ترك المجموعة الأصلية دون تغيير. وهذا يعني أن فرزها بإرجاع قائمة فرزها التي يمكن حفظها في متغير جديد أو استخدامها مباشرة في أجزاء أخرى من البرنامج دون التأثير على البيانات الأصلية. يفضل استخدام الفرز إذا كنت بحاجة إلى الحفاظ على الترتيب الأصلي للعناصر أو إذا كنت بحاجة إلى إجراء عدة عمليات مختلفة على البيانات التي تم فرزها.
مثال على استخدام فرزها:
أرقام = [4, 2, 1, 3]
فرز_أرقام = مرتبة (أرقام)
طباعة (أرقام مصنفة) # [1, 2, 3, 4]
طباعة (أرقام) # [4, 2, 1, 3]
الاختيار بين الفرز والفرز
يعتمد الاختيار بين الفرز والفرز على المهمة المحددة. إذا كنت بحاجة إلى تغيير مجموعة البيانات الأصلية ولا تعتمد على ترتيبها الأصلي ، فسيكون الفرز اختيارا أكثر كفاءة. يعمل مباشرة على الكائن ويتطلب استخدام ذاكرة أقل.
ومع ذلك ، إذا كنت بحاجة إلى الحفاظ على الترتيب الأصلي للعناصر أو استخدام البيانات المصدر في عدة أماكن في البرنامج ، فمن الأفضل استخدام الفرز. يقوم بإنشاء مجموعة جديدة مرتبة ، مع ترك المجموعة الأصلية دون تغيير.
في النهاية ، يعتمد الاختيار بين الفرز والفرز على احتياجاتك الخاصة والبيانات المستخدمة. توفر كلتا الوظيفتين القدرة على فرز المجموعات ، ولكن لها بعض الاختلافات في السلوك والاستخدام التي تستحق التذكر. استخدامها وفقا لمهمتك واحتياجات البرنامج الخاص بك.
أمثلة على استخدام الفرز
طريقة الفرز () هي وظيفة مضمنة في بايثون ويمكن استخدامها لفرز العناصر في قائمة. يقوم بتعديل القائمة الأصلية عن طريق تطبيق خوارزمية فرز عليها وإرجاع قائمة مرتبة.
فيما يلي بعض الأمثلة على استخدام طريقة الفرز ():
- الناس = [
people.sort(key=lambda x: x["age"])
print(people)
Результат: [{«name»: «Bob», «age»: 20}, {«name»: «Alice», «age»: 25}, {«name»: «Charlie», «age»: 30}]
Пример 4: Отсортировать список в обратном порядке
numbers = [4, 2, 8, 6, 5]
numbers.sort(reverse=True)
print(numbers)
Результат: [8, 6, 5, 4, 2]
Это лишь несколько примеров использования sort(). تسمح لك الطريقة أيضا بتحديد وظيفة المقارنة الخاصة بك أو استخدام معلمات أخرى لتخصيص الفرز وفقا لاحتياجاتك.
أمثلة على الاستخدام المصنف
يتم استخدام الدالة المصنفة() المضمنة في بايثون لفرز العناصر في قائمة معينة أو بنية بيانات أخرى قابلة للتكرار. يقوم بإرجاع قائمة مرتبة جديدة دون تغيير القائمة الأصلية.
تشمل مزايا استخدام طريقة الفرز () على طريقة الفرز () القدرة على العمل مع أي كائنات قابلة للتكرار والحفاظ على الترتيب الأصلي للعناصر ، فضلا عن المرونة في اختيار معايير الفرز.
لنلق نظرة على بعض الأمثلة على استخدام الفرز () لفرز أنواع مختلفة من البيانات:
فرز قائمة الأرقام:
أرقام = [9, 5, 2, 7, 1]
فرز_أرقام = مرتبة (أرقام)
طباعة (أرقام مصنفة)
الناتج:
[1, 2, 5, 7, 9]
فرز السلسلة:
سلسلة = 'بيثون'
فرز_سلسلة = مرتبة (سلسلة)
طباعة (فرز_سلسلة)
الناتج:
['ح' ، ' ن ' ، 'س' ، ' ع ' ، ' ر ' ، 'ص']
فرز قائمة السلاسل بالترتيب الأبجدي:
كلمات = ['التفاح' ، 'الموز' ، 'الكرز' ، 'تاريخ']
فرز_كلمات = مرتبة (كلمات)
طباعة (كلمات مفرزة)
Вывод: