Python 当我更改格式时更改列表的顺序

Python changing order of a list when I change the formatting

我正在尝试将列表中所有项目的格式从浮点数更改为整数。我的代码似乎可以完成这项工作,但它正在改变列表中项目的顺序。

一个可重现的例子:

l = [-1.0, 0.0, 1.0]
[int(f'{float(l[int(i)]):g}') for i in l]

>>> Out: [1, -1, 0]

知道如何避免重新排列这些元素吗?

谢谢。

你想多了,干脆做:

l = [-1.0, 0.0, 1.0]
[int(i) for i in l]

l[int(i)]) <- 您在此处按索引访问列表位置。只需使用 map:

重写您的代码
l = [-1.0, 0.0, 1.0]
o = list(map(int, l))
print(o)

输出:

[-1, 0, 1]

您可以同时使用理解列表和函数式编程:

l = [-1.0, 0.0, 1.0]
result1 = [int(i) for i in l]
result2 = list(map(int, l))