Python:One-liner对2d数组(列表列表)中的元素执行操作?

ape*_*ped 11 python arrays 2d matrix operation

我有一个列表列表,每个列表包含不同数量的字符串.我想(有效地)将这些全部转换为整数,但感觉有点密集,因为我无法让它为我的生活而努力.我一直在尝试:newVals = [int(x)for x in [row for values in values]]

"值"是列表的列表.它一直说x是一个列表,因此如果是int()则不能成为参数.显然我在这里做了些蠢事,这是什么?对于这种事情,有没有被接受的习语?

像往常一样,提前感谢.

Joh*_*ooy 12

这使得int嵌套

[map(int, x) for x in values]
Run Code Online (Sandbox Code Playgroud)

如果你想让它们变平,那也不难

for Python3 map()返回一个迭代器.你可以用

[list(map(int, x)) for x in values]
Run Code Online (Sandbox Code Playgroud)

但在这种情况下你可能更喜欢使用嵌套的LC

[[int(y) for y in x] for x in values]
Run Code Online (Sandbox Code Playgroud)


JBe*_*rdo 10

怎么样:

>>> a = [['1','2','3'],['4','5','6'],['7','8','9']]
>>> [[int(j) for j in i] for i in a]
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
Run Code Online (Sandbox Code Playgroud)