<分区>
在 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) 的东西。当然,最后一个脚本不适用于嵌套列表。一行列表理解也可以接受。
标签 python python-2.7
<分区>
在 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) 的东西。当然,最后一个脚本不适用于嵌套列表。一行列表理解也可以接受。
最佳答案
混合了 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 上的大型嵌套列表,第一个变体可能是最快的(如果内部列表很大,它避免了为内部 list 获取
s),而 float
构造函数和字节码执行的查找开销list
包装的等价物最终可能会在 CPython 3 上胜出;对于所有版本上的小型嵌套列表,嵌套列表理解通常是最快的。
关于python - "Map"Python 中的嵌套列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34080828/
相关文章:
python - 如何使用 python 按字母顺序对 .txt 文件进行排序?
python - 如何在 Python 2 中求大数的平方根?
python - Python-GTK3 中的 set_text 在哪里设置输入文本?
python - 使用 iron python 脚本在文本文件中打印注册商标符号?
python - encodings.utf_8.StreamReader readline(), read() 和 seek() 不合作
python - GalenRemoteWebDriver 无法连接到本地主机服务器
python - 设置 OpenAI API 访问时为 "Malformed API key in .env"
Python数据错误: ValueError: invalid literal for int() with base 10: '42152129.0'