当一个条目被投出时,条目对象是否会在列表中永久地改变

我这个嵌套列表中,内部列表有两个项目,一个名字和一个浮动值。我对铸造产生了好奇,于是用了两种不同的方法来制作列表,如下。

方法1.输出

n = int(input())
lis = [[input() for i in range(2)] for y in range(n)]
for k, v in lis:
    v = float(v)
print(lis)

输出。

[['a', '-25.001'], ['b', '-25.0001'], ['c', '-25.000'], ['d', '-25.0']]

方法二:

n = int(input())
lis=[]
for i in range(n):
    lis.append([input(),float(input())])
print(lis)

输出

[['a', -25.001], ['b', -25.0001], ['c', -25.0], ['d', -25.0]]

我想要的是方法2的输出,但我想不出为什么第一种方法的输出会产生出一个 '' 围绕浮点数,即使我把它投到了 float.

是不是因为浮动对象的铸造没有永久工作?

解决方案:

将this:

for k, v in lis:
    v = float(v)

改成this:

for i in range(n):
    lis[i][1] = float(lis[i][1])

或者,你也可以这样做。

for pair in lis:
    pair[1] = float(pair[1])

这样做的原因是 pair 是一个 参考 的子列表,所以在改变 pair 本身不会有任何影响,改变一个 元素 的对改变共享子列表。

给TA打赏
共{{data.count}}人
人已打赏
解决方案

使用函数包装器Invoke-AzResourceAction cmdlet的问题。

2022-5-12 22:00:15

解决方案

pyinstaller单个程序的exe,它使用谷歌api客户端lib。

2022-5-12 22:00:17

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索