我想知道如何将列表中的字符串转换为整数。
例如:
输入:
data = [
['1', '-160'],
['2', '-3000'],
['4', '-2'],
['5', '0.27'], ]
data = [int(a) for a in data[0]] #This converts only the first row of the list - I need the whole list converted
print(data)
输出:
[[1, -160], [2, -3000],[4, -2],[5, 0.27]]
这样做的原因是因为我想对列表进行排序,但是当数字有撇号时这不起作用。
我希望有人可以帮助我:)
答案 0 :(得分:2)
这将是正确的列表理解:
[[float(c) for c in row] for row in data]
请注意,我已将int(...)
更改为float(...)
以处理输入中的浮动数字。这给出了输出:
[[1.0, -160.0], [2.0, -3000.0], [4.0, -2.0], [5.0, 0.27]]
根据您的评论,如果您的列表中有字母,您还可以在列表理解中添加if
语句:
[[float(c) if c.lstrip('-').isdigit() else c for c in row] for row in data ]
答案 1 :(得分:0)
data = [
['1', '-160'],
['2', '-3000'],
['4', '-2'],
['5', '0.27'], ]
print [[int(i), float(j)] for i, j in data]
结果:
[[1, -160.0], [2, -3000.0], [4, -2.0], [5, 0.27]]
答案 2 :(得分:0)
我认为这可以解决您的问题(假设您希望所有值都是整数):
import math
...
result = [[math.floor(float(y)) for y in x] for x in data]
结果
[[1, -160], [2, -3000], [4, -2], [5, 0]]