ali_agha نشر 25 نوفمبر 2015 أرسل تقرير نشر 25 نوفمبر 2015 لدي قائمة من tuples وأريد أن أفرز هذه القائمة تصاعديا حسب القيم الموجودة في العنصر الثاني من tuple في القائمة، فما هي أسهل وأسرع هذه الطرق؟شكل القائمة:[('abc', 121),('abc', 231),('abc', 148), ('abc',221)] اقتباس
0 هشام رزق الله نشر 25 نوفمبر 2015 أرسل تقرير نشر 25 نوفمبر 2015 هنالك عدة طرق لفرز قائمة اعتمادا على عنصر معين داخل tuples، فيمكنك استخدام كلمة key مع lambda داخل دالة sorted كما في المثال التالي:sorted([('abc', 121),('abc', 231),('abc', 148), ('abc',221)],key=lambda x: x[1]) سوف تكون key في المثال السابق دالة تُعرف كيفية استرجاع العناصر القابلة للمقارنة من بنية البيانات الخاصة بالقائمة والتي ستكون في حالتنا هذه العنصر الثاني من tuple لذلك سوف نصل إليها عن طريق [1].يمكنك استخدام طريقة أخرى أسرع وأفضل وهي عن طريق استخدام دالة itemgetter من وحدة operator كما في المثال التالي:>>> from operator import itemgetter >>> data = [('abc', 121),('abc', 231),('abc', 148), ('abc',221)] >>> sorted(data,key=itemgetter(1)) [('abc', 121), ('abc', 148), ('abc', 221), ('abc', 231)] اقتباس
السؤال
ali_agha
لدي قائمة من tuples وأريد أن أفرز هذه القائمة تصاعديا حسب القيم الموجودة في العنصر الثاني من tuple في القائمة، فما هي أسهل وأسرع هذه الطرق؟
شكل القائمة:
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.