使用嵌套列表列出清单

-1 python list-comprehension list

想在Python中提出与嵌套列表相关的问题.

我有一个嵌套列表

list_1 = [[1,3,0,1], [1,1,0,2,3,0,4,], [2,1,2,2,3,4]]
Run Code Online (Sandbox Code Playgroud)

我想在嵌套列表上执行舍入和分离操作,但保持它现在分组(为了使其更清楚我需要压缩列表执行操作并在同一组中再次展开它).

例如,除以2后列表'list_1'的结果为

list_2 = [[0.5,1.5,0,0.5],[0.5,0.5,0,1,1.5,0,2],[1,0.5,1,1,1.5,2]]
Run Code Online (Sandbox Code Playgroud)

我用来为signle列表执行此操作的代码如下:

list_2 = [round(b,2) for b in [a / 2 for a in list_1]]
Run Code Online (Sandbox Code Playgroud)

你能否建议解决这个问题的方法.目前我收到错误

"unsupported operand type(s) for /: 'list' and 'float'"
Run Code Online (Sandbox Code Playgroud)

谢谢.

cs9*_*s95 5

修复你的代码 -

[[j / 2. for j in i] for i in list_1] 
Run Code Online (Sandbox Code Playgroud)

如果你担心性能,你可以乘以.5而不是除以2(考虑到这是一个二次解,你可能看不到显着的差异,但它应该算一些东西).

[[j * .5 for j in i] for i in list_1] 
Run Code Online (Sandbox Code Playgroud)

文档有一个仅适用于嵌套列表理解的部分,请考虑阅读.