将float转换为特定子列表中的整数

时间:2019-12-12 17:06:48

标签: python list sublist

让我们简短一点。

例如,我有一个列表列表

a = [[1.0, 2.0], [6, 8]]

我想做的是将第一个子列表的所有值都转换为整数,这样数组将是

a = [[1, 2], [6, 8]]

您能告诉我该怎么做吗?我已经在map方面苦苦挣扎,但似乎找不到正确的用法。预先感谢。

3 个答案:

答案 0 :(得分:1)

您可以使用嵌套列表理解:

[[int(y) for y in x] for x in a]

或使用map

[list(map(int, x)) for x in a]

答案 1 :(得分:1)

您可以对第一个列表(需要转换)使用列表推导,并添加第二个列表(无需更改)。

print([[int(aa) for aa in a[0]], a[1]])

Out[46]: [[1, 2], [6, 8]]

与其他解决方案不同,这不会以任何方式更改列表的第二部分。

答案 2 :(得分:0)

如果您只想更改第一个交货清单,则可以选择

[a for a in map(lambda n, x: list(x if n else int(x) for x in a[n]), (0, 1), a)]

您可以将其分配给变量,然后打印到屏幕上。

b = [a for a in map(lambda n, x: list(x if n else int(x) for x in a[n]), (0, 1), a)]
print(b)

记住它只会转换左列表中的值