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

السؤال

نشر

لدي tuple متكونة من tuples حصلتُ عليها من استعلام MySQL:

T1 = (('13', '17', '18', '21', '32'),
      ('07', '11', '13', '14', '28'),
      ('01', '05', '06', '08', '15', '16'))

أريد تحويل جميع عناصر السلاسل النصية إلى أعداد صحيحة ومن ثم إنشاء قائمة ووضع الأعداد الصحيحة فيها كما في المثال التالي:

T2 = [[13, 17, 18, 21, 32], [7, 11, 13, 14, 28], [1, 5, 6, 8, 15, 16]]

فكيف أستطيع فعل ذلك؟

Recommended Posts

  • -1
نشر

هنالك عدة طرق لتحويل السلاسل النصية إلى أعداد صحيحة، فيمكنك على سبيل المثال استخدام الدالة المدمجة int() والتي ستمرر لها سلسلة نصية تحتوي على رقم و ترجع الرقم كعدد صحيح كما في المثال التالي:

print int("1") + 1

المثال السابق يطبع 2.
إذا كنت تعرف هيكل القائمة (على الرغم من أن قائمتك تحتوي على قوائم لكنها تمتلك فقط مستوى واحد من القوائم) فيمكنك استخدام map وحلقة التكرار for لإنشاء قائمة من الأعداد الصحيحة كما في المثال التالي:

T2 = [map(int, x) for x in T1]

المصدر

  • 0
نشر

الإجابة السابقة غير صحيحة.

بدايةً نحوّل T1 إلى قائمة من القوائم بدلاً من tubel من ال tubels:

t = (('13', '17', '18', '21', '32'),
      ('07', '11', '13', '14', '28'),
      ('01', '05', '06', '08', '15', '16'))
t=list(map(list, t))
"""
[['13', '17', '18', '21', '32'],
 ['07', '11', '13', '14', '28'],
 ['01', '05', '06', '08', '15', '16']]
"""

ثم نحوّل كل عنصر إلى عدد صحيح:

# idx نخزن فيه فهرس القائمة
# li نخزن فيها القائمة
for idx,li in enumerate(t): 
  # نمر علر كل عنصر في القائمة ونحول قيمتها إلى الصنف الصحيح
  t[idx]=[int(x) for x in li]
print(t)
# [[13, 17, 18, 21, 32], [7, 11, 13, 14, 28], [1, 5, 6, 8, 15, 16]]

 

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...