当前位置:  开发笔记 > 编程语言 > 正文

在Python中"映射"嵌套列表

如何解决《在Python中"映射"嵌套列表》经验,为你挑选了2个好方法。

在Python中,我试图将运算符应用于两层嵌套数组.例如,

a = [['2.3','.2'],['-6.3','0.9']]
for j in range(2)
    for i in range(2)
        a[i][j] = float(a[i][j])

如果没有循环,我怎么能这样做?我希望有类似于a = map(float,a)的东西.当然,最后一个脚本不适用于嵌套列表.单行列表理解也是可以接受的.



1> ShadowRanger..:

混合map和listcomp 的单行:

a = [map(float, suba) for suba in a]  # Only works on Py2

或变种:

# Both of the below work on Py2 and Py3
a = [list(map(float, suba)) for suba in a]
a = [[float(x) for x in suba] for suba in a]

根据您的个人偏好选择并定位Python版本.对于CPython 2上的大型嵌套列表,第一个变体可能是最快的(如果内部列表很大,它避免了查找开销以获取内部的float构造函数和字节代码执行list),并且list包装的等价物最终可能在CPython上获胜3; 对于所有版本的小嵌套列表,嵌套列表推导通常是最快的.



2> Iron Fist..:

使用列表理解:

a =  [[float(j) for j in i]  for i in a]

推荐阅读
依然-狠幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有