我有一个2D列表包含大小不等的数字,如下所示:
lst = [[1,2,3],[-1,2,4],[0,2],[2,-3,6]]
如果元素大小小于3,我使用此代码插入0:
newlist = [val.insert(1,0) for val in lst if len(val)<3]
但我只是得到了一个空的
newlist
原著呢
lst
被插入一个
0
.
>>> lst = [[1,2,3],[-1,2,4],[0,2],[2,-3,6]]
>>> newlist = [val.insert(1,0) for val in lst if len(val)<3]
>>> newlist
[None]
>>> lst
[[1, 2, 3], [-1, 2, 4], [0, 0, 2], [2, -3, 6]]
我不想用旧的
lst
列出值,因为如果修改值可以返回
新名单
,我可以直接用它转换成数据帧。这样地:
df = pd.DataFrame([val.insert(1,0) for val in lst if len(val)<3])
那么,我该怎么做呢?我希望代码可以用一行程序编写。