如何解决列表中的百分比如何转换为十进制
rstocks = ['5.57%','3.95%','5.26%','5.49%','-1,80%']
stocks =[]
for i in rstocks:
stock = rstocks[i]//100
stocks.append(stock)
一直显示
TypeError: list indices must be integers or slices,not str
解决方法
您的代码中有两个错误。
- 您可能错误地输入了值
-1,80%
而不是-1.80%
。 - 列表中的所有元素都是字符串,字符串没有整数 师
要获得列表元素的整数除法,首先,您需要将元素转换为整数,然后使用运算符。看看我下面的代码。我将所有元素转换为 float
,然后乘以 100
。
rstocks = ['5.57%','3.95%','5.26%','5.49%','-1.80%']
stocks = []
for x in rstocks:
stocks.append(float(x.strip('%'))*100)
print(stocks)
Output
[557.0,395.0,526.0,549.0,-180.0]
您还需要获取整数值,然后您可以将 float
类型转换为 int
。
int(float(x.strip('%'))*100)
或者稍后对股票的所有元素进行类型转换。
print([int(s) for s in stocks])
,
我假设 'rstocks' 上最后一个索引的值是 '-1.80%' 而不是 '-1,80%'。您可以获取循环中值的子字符串并将数据类型更改为浮点数。
rstocks = ['5.57%','-1.80%']
stocks =[]
for i in rstocks:
stock = float(i[:-1])
stocks.append(stock)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。