Fahmy Mostafa نشر 19 يونيو 2021 أرسل تقرير نشر 19 يونيو 2021 لدي نص كالتالي: string = "01234567890123456789" كيف يمكنني استخراج سلسلة من الأرقام، ويكون طول كل سلسلة 10 أرقام فقط، أي تكون النتيجة كالتالي: [123456789, 1234567890, 2345678901, 3456789012, 4567890123 ...] 1 اقتباس
0 Wael Aljamal نشر 19 يونيو 2021 أرسل تقرير نشر 19 يونيو 2021 يمكن استخدام الترتاتيب permetions لتوليد جميع السلاسل الممكنة من مجموعة من العناصر حيث تتوفر بايثون على المكتبة المساعدة itertools على المولد للتراتيب permutations ويمكن تمرير له قائمة بالعناصر مع طول القوائم الجزئية منها: from itertools import permutations string = "01234567890123456789" for i in permutations(string, 10): print (i) يمكن تمرير سلسلة نصية* لن يتم الحفاظ على ترتيب العناصر ضمن المصفوفة إنما تشكيل جميع الاحتمالات الممكنة 3 اقتباس
3 سامح أشرف نشر 19 يونيو 2021 أرسل تقرير نشر 19 يونيو 2021 يمكن أيضًا أن تستعمل regular expression للحصول على قائمة الأرقام كالتالي: >>> import re >>> string = "01234567890123456789" >>> matches = re.finditer(r'(?=(\d{10}))', string) >>> results = [int(match.group(1)) for match in matches] >>> results [123456789, 1234567890, 2345678901, 3456789012, 4567890123, 5678901234, 6789012345, 7890123456, 8901234567, 9012345678, 123456789] لاحظ أن رقم 10 في السطر الثالث يعبر عن طول سلسلة الأرقام 4 اقتباس
0 ريم المهدي نشر 20 يونيو 2021 أرسل تقرير نشر 20 يونيو 2021 (معدل) يمكننا عمل ذلك عن طريق إستخدام دالة combinations المتوفرة في مكتبة itertools والتي تقوم بإسترجاع كافة التوافيق المحتملة بكل الأطوال الممكنة للمتغير string، لاحظ المثال أدناه: from itertools import combinations string = "01234567890123456789" res = [string[x:y] for x, y in combinations( range(len(string) + 1), r = 2)] print(list(set([i for i in res if len(i)==10]))) بعد إستيراد الدالة، قمنا بتعريف المتغير string ومن ثم إيجاد كل التوافيق اللازمة عن طريق تقسيم النص إلى أجزاء بإستخدام x,y في كل مرة يأخذان قيمتين مختلفتين إبتداء من 0 للمتغير x و 1 للمتغير y، بذلك يمكننا تقسيم string و الحصول على القيم من موقع x و حتى الوصول إلى موقع y (موضح بعملية التقسيم او slicing للمتغير string بقيم [x:y]. أخيراً عملية الإختبار الشرطية لإستخراج النصوص التي يبلغ طولها 10 حروف، و من ثم تحويلها لمجموعة بإستخدام set للحصول على القيم بدون تكرار، و القيم المطبوعة تكون في شكل قائمة بإستخدام دالة list لتقوم بعملية التحويل (إختياري حسب ما يتطلب البرنامج). و بذلك يمكننا الحصول على كل الإحتمالات الممكنة و إستخراج 10 قيم مختلفة بدون تكرار أو إخفاء لقيمة 0 في بداية النص. تم التعديل في 20 يونيو 2021 بواسطة Reem Elmahdi إضافة توضيح 1 اقتباس
السؤال
Fahmy Mostafa
لدي نص كالتالي:
كيف يمكنني استخراج سلسلة من الأرقام، ويكون طول كل سلسلة 10 أرقام فقط، أي تكون النتيجة كالتالي:
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.