الأربعاء، 10 يوليو 2024

فرز قائمة القواميس

 إذا كانت لديك قائمة من القواميس وتريد فرزها حسب قيمها، فيمكنك استخدام فئة itemgetter من وحدة التشغيل ودالة sorted . هنا مثال للتوضيح.

1
2
3
4
5
6
7
8
from operator import itemgetter
d = [{"school":"yale", "city": "Beijing"},
 {"school":"cat", "city": "Cairo"}]
sorted_list = sorted(d, key=itemgetter('school'))
print(sorted_list)
#النتيجة
[{'school': 'cat', 'city': 'Cairo'}, {'school': 'yale',
'city': 'Beijing'}]

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

1
2
3
4
5
6
7
8
9
from operator import itemgetter
d = [{"school":"yale", "city": "Beijing"},
 {"school":"Cat", "city": "Cairo"}]
sorted_list = sorted(d, key=itemgetter('school'),reverse=True)
print(sorted_list)
 
#النتيجة
[{'school': 'yale', 'city': 'Beijing'}, {'school': 'Cat',
'city': 'Cairo'}]

السبت، 29 يونيو 2024

الفرق بين قائمتين في بايثون

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

a = [9, 3, 6, 7, 8, 4]
b = [9, 3, 7, 5, 2, 1]
difference = set(a).difference(set(b))
print(list(difference))
# النتيجة
[8, 4, 6]

هناك طريقة ساذجة أخرى تتمثل في استخدام حلقة for. انظر أدناه:

a = [9, 3, 6, 7, 8, 4]
b = [9, 3, 7, 5, 2, 1]
difference = []
for number in a:
 if number not in b:
 difference.append(number)
print(difference)
# النتيجة
[6, 8, 4]

يمكنك أيضًا تحويل الكود أعلاه إلى فهم القائمة.


1
2
3
4
5
6
a = [9, 3, 6, 7, 8, 4]
b = [9, 3, 7, 5, 2, 1]
dif = [number for number in a if number not in b]
print(dif)
# النتيجة
[6, 8, 4]

10 مشاريع صعبة للمستوى المتوسط ​​لتعزيز مهاراتك في بايثون ومحفظتك

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