البرمجة

تقسيم القوائم في بايثون: استخدام المجموعات لإنشاء قوائم فرعية فريدة

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

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

python
BigList = [2, 1, 0, 2, 2, 1, 2, 1, 0, 3, 0, 1, 3] # Remove duplicates by converting the list to a set unique_values_set = set(BigList) # Reorder the unique values unique_values_ordered = sorted(unique_values_set) # Initialize a dictionary to store the sublists sublists_dict = {} # Iterate through the unique values to create sublists for index, value in enumerate(unique_values_ordered): # Create a sublist containing values up to the current index sublist = unique_values_ordered[:index + 1] # Store the sublist in the dictionary sublists_dict[f'L{index + 1}'] = sublist # Print the desired output for key, value in sublists_dict.items(): print(f'{key} = {value}')

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

المزيد من المعلومات

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

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

في الكود السابق، تم استخدام تكرار for لإنشاء قاموس (dictionary) يحتوي على القوائم الفرعية. يمكنك أيضًا استخدام هيكل التحكم while لتحقيق نفس الهدف.

python
BigList = [2, 1, 0, 2, 2, 1, 2, 1, 0, 3, 0, 1, 3] unique_values_set = set(BigList) unique_values_ordered = sorted(unique_values_set) sublists_dict = {} index = 0 while index < len(unique_values_ordered): sublist = unique_values_ordered[:index + 1] sublists_dict[f'L{index + 1}'] = sublist index += 1 for key, value in sublists_dict.items(): print(f'{key} = {value}')

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

زر الذهاب إلى الأعلى