كيفية تحويل أرقام السلاسل إلى أعداد صحيحة في القائمة؟
سؤال
عندي قائمة تقول:
['batting average', '306', 'ERA', '1710']
كيف يمكنني تحويل الأرقام المقصودة دون لمس السلاسل؟
شكرا للمساعدة.
المحلول
changed_list = [int(f) if f.isdigit() else f for f in original_list]
نصائح أخرى
والبيانات تبدو وكأنك تعرف في الوظائف التي من المفترض أن تكون الأرقام. في هذه الحالة فمن الأفضل لتحويل صراحة البيانات في هذه المواقف بدلا من مجرد تحويل أي شيء يشبه رقم:
ls = ['batting average', '306', 'ERA', '1710']
ls[1] = int(ls[1])
ls[3] = int(ls[3])
وجرب هذا:
def convert( someList ):
for item in someList:
try:
yield int(item)
except ValueError:
yield item
newList= list( convert( oldList ) )
a= ['batting average', '306', 'ERA', '1710.5']
[f if sum([c.isalpha() for c in f]) else float(f) for f in a ]
إذا كانت قائمتك تحتوي على float وstring وint (كما أشار @d.putto في التعليق)
لا تنتمي إلى StackOverflow