猿问

无法转换 Python 列表中项目的值或类型

为什么不能更改列表项的类型或值?


a = ['3.465759','2.8797','9.23544']


for each in a:

    print(each)

    each = round(float(each),3) + 2    

print(a)

结果是


   ['3.465759', 2.8797, '9.23544']


Cats萌萌
浏览 140回答 4
4回答

万千封印

eacha是在下一次迭代中取下一个值的循环变量。将转换后的值存储在另一个列表中。a = ['3.465759','2.8797','9.23544']b = []for each in a:    print(each)    each = round(float(each),3) + 2        b.append(each)print(b)输出:3.4657592.87979.23544[5.466, 4.88, 11.235]或者如果你想就地修改列表,那么a = ['3.465759','2.8797','9.23544']for i in range(len(a)):    each = a[i]    print(each)    each = round(float(each),3) + 2    a[i] = eachprint(a)或者使用列表理解[round(float(each),3) + 2 for each in a]

九州编程

您可以使用地图:a = ['3.465759','2.8797','9.23544'] float_list = list(map(float, a)) print(float_list)输出:[3.465759, 2.8797, 9.23544]

慕码人8056858

a = ['3.465759','2.8797','9.23544']result = []for each in a:    each = round(float(each),3) + 2      result.append(each)print(result)Output: [5.466, 4.88, 11.235]这是你想要的?

慕婉清6462132

你没有改变a,当你进行转换时,请确保更改值:即:a = ['3.465759','2.8797','9.23544']for i  in range(len(a)):    each = a[i]    print(each)    each = round(float(each),3) + 2     a[i] = each   print(a)或者a = ['3.465759','2.8797','9.23544']for i, each in enumerate(a):    print(each)    each = round(float(each),3) + 2     a[i] = each   print(a)3.4657592.87979.23544[5.466, 4.88, 11.235]
随时随地看视频慕课网APP

相关分类

Python
我要回答