为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Cats萌萌 2023-05-23 10:41:41
为什么不能更改列表项的类型或值?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']
查看完整描述

4 回答

?
万千封印

TA贡献1891条经验 获得超3个赞

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.465759

2.8797

9.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] = each

print(a)

或者


使用列表理解


[round(float(each),3) + 2 for each in a]


查看完整回答
反对 回复 2023-05-23
?
九州编程

TA贡献1785条经验 获得超4个赞

您可以使用地图:

a = ['3.465759','2.8797','9.23544']
float_list = list(map(float, a))
print(float_list)

输出:

[3.465759, 2.8797, 9.23544]


查看完整回答
反对 回复 2023-05-23
?
慕码人8056858

TA贡献1803条经验 获得超6个赞

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]

这是你想要的?


查看完整回答
反对 回复 2023-05-23
?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

你没有改变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.465759

2.8797

9.23544

[5.466, 4.88, 11.235]


查看完整回答
反对 回复 2023-05-23
  • 4 回答
  • 0 关注
  • 139 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信