2024-04-26 10:05:45 发布
网友
在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)的东西。当然,最后一个脚本不适用于嵌套列表。一行列表理解也可以接受。
第一个参数需要一个函数,因此,可以使用lambda运算符将float映射到子列表。这是一个例子:
a = map(lambda b : map(float, b), a)
列表理解:
a = [[float(j) for j in i] for i in a]
一行代码,包含map和listcomp:
map
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包装的等价变量最终可能会在CPython 3上获胜;对于所有版本上的小型嵌套列表,嵌套的列表理解通常是最快的。
float
list
第一个参数需要一个函数,因此,可以使用lambda运算符将float映射到子列表。这是一个例子:
列表理解:
一行代码,包含
map
和listcomp:或变体:
根据您的个人喜好和目标Python版本进行选择。对于CPython 2上的大型嵌套列表,第一个变量可能是最快的(如果内部列表很大,它可以避免查找开销,从而获得内部
float
的构造函数和字节码执行),而list
包装的等价变量最终可能会在CPython 3上获胜;对于所有版本上的小型嵌套列表,嵌套的列表理解通常是最快的。相关问题 更多 >
编程相关推荐