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

حذف الأرقام المكررة في بايثون

Asma'a

السؤال

السلام عليكم.لدي مشكلة في كود برمجي بلغة البايثون..لسؤال يقول :حذف الأرقام المكررة في الarray جربت عدة حلول والحل المرفق أحدهم لكن لم أتوفق بالحل..ممكن تصحيح الخطأ!!

debug.py

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

وعليكم السلام , مرحبًا @أسماء عبدالله محمود النظاري,

يمكنك عمل ذلك بإستخدام الدالة ()set  و هي تقوم بتحويل القائمة الى نوع set , و set لا يسمح بتكرار الأرقام .

numbers = [1, 2, 2, 2, 4, 5, 7, 2, 2, 8, 9]

print( set(numbers) )

بعد ذلك نقوم بإعادة تحويل القائمة set الى list القائمة التقليدية بإستخدام الدالة ()list

print( list(set(numbers)) )

يمكنك معرفة المزيد من الأكادمية .

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

جزاك الله خير,

لوسمحت كيف أستطيع حل هذا السؤال!

إذا كان الرقم مكون من 7 أو 8 أو 9 أرقام تقوم بوضع Dot بعد ثالث رقم من اليمين و Comma بعد سادس رقم من اليمين

إذا كان الرقم مكون من 4 أو 5 أو 6 أرقام تقوم بوضع Dot بعد ثالث رقم من اليمين

إذا كان الرقم مكون من 3 أرقام لا تقوم بوضع أي شيء

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 11 دقائق مضت قال أسماء عبدالله محمود النظاري:

جزاك الله خير,

لوسمحت كيف أستطيع حل هذا السؤال!

إذا كان الرقم مكون من 7 أو 8 أو 9 أرقام تقوم بوضع Dot بعد ثالث رقم من اليمين و Comma بعد سادس رقم من اليمين

إذا كان الرقم مكون من 4 أو 5 أو 6 أرقام تقوم بوضع Dot بعد ثالث رقم من اليمين

إذا كان الرقم مكون من 3 أرقام لا تقوم بوضع أي شيء

وجزاك الله خيرا ,
هذا هو الحل للمطلوب :
 

numbers = [1, 2, 2, 2, 4, 5, 7, 2, 2]
result = ""
i = 0 # نحدد به عدد التكرار من اجل الجملة الشرطية

if len(numbers) in [7,8,9]: # التحقق من ان عدد أرقام القائمة هو 7/8/9
    for num in numbers: # عملية التكرار
        result += str(num) + " " # إضافة الرقم الى النص
        i += 1
        if i == 3: # إضافة نقطة أو فاصلة على حسب الشرط المطلوب
            result += "."
        elif i == 6:
            result += ","
            
elif len(numbers) in [4,5,6]:# التحقق من ان عدد أرقام القائمة هو 4/5/6
    for num in numbers:
        result += str(num) + " "
        i += 1
        if i == 3:
            result += "."
    
elif len(numbers) == 3:
    print("nothing")

 
print(result) #طباعة الجواب

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

يمكنك إستخدام الطريقة التالية لحذف الأرقام المكررة في ال array


numbers = [1, 2, 2, 2, 4, 5, 7, 2, 2, 8, 9]
# نقوم بتعريف القائمة التي تحتوي على الأرقام بعد حذف التكرارات
# يجب مراعاة أن تكون أسماء المتغيرات دالة على محتواها
uniqueArray = []

#    من المرات  و هو عدد عناصر ال قائمة الأساسية n  لتمر على عناصر القانمة الجديدة عدد  loop نستخدم  
# و نقوم بمقارنة كل عنصر في القائمة الجديدة بعناصر القائمة الأساسية فإذا لم يكن العنصر موجود بالقائمة الجديدة نضيفه إليها و إن كان موجود من قبل نكمل في الحلقة

for n in range(len(numbers)):
  if (numbers[n] not in uniqueArray):
    uniqueArray.append(numbers[n])


print(uniqueArray)

# الناتج [1, 2, 4, 5, 7, 8, 9]

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 2 ساعة قال سليم السحابي:

هل يمكن أن أحصل على كود يقوم بعد التكرار وحذفه

المنطق يتم من خلال الآتي:

  1. إنشاء دالة ولتكن باسم remove_duplicates لحذف التكرار.
  2. حلقة لحساب عدد التكرار.
  3. حلقة لإنشاء القائمة الجديدة وتخزينها في متغير باسم (unique_arr).
  4. إرجاع القائمة الجديدة وقاموس عدد التكرار.
  5. استدعاء الدالة وطباعة النتائج.
def remove_duplicates(arr):
    # إنشاء قاموس لتتبع عدد التكرار لكل عنصر
    count_dict = {}

    # حلقة لحساب عدد التكرار لكل عنصر
    for num in arr:
        count_dict[num] = count_dict.get(num, 0) + 1

    # حلقة لبناء قائمة جديدة بدون العناصر المكررة
    unique_arr = [num for num, count in count_dict.items() if count == 1]

    return unique_arr, count_dict

# قائمة مثالية
my_array = [1, 2, 3, 4, 3, 2, 5, 6, 7, 8, 7, 6]

# استدعاء الدالة
unique_numbers, counts = remove_duplicates(my_array)

# طباعة النتائج
print("New list without duplicates:", unique_numbers)
print("Number of occurrences for each element:", counts)

وستجد أن النتيجة هي:

New list without duplicates: [1, 4, 5, 8]
Number of occurrences for each element: {1: 1, 2: 2, 3: 2, 4: 1, 5: 1, 6: 2, 7: 2, 8: 1}

لاحظ في القاموس ستجد العدد وبجانبه عدد التكرار.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...