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))
我正在尝试将列表中所有项目的格式从浮点数更改为整数。我的代码似乎可以完成这项工作,但它正在改变列表中项目的顺序。
一个可重现的例子:
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))