python - "Map"Python 中的嵌套列表

标签 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 获取 float 构造函数和字节码执行的查找开销s),而 list 包装的等价物最终可能会在 CPython 3 上胜出;对于所有版本上的小型嵌套列表,嵌套列表理解通常是最快的。

关于python - "Map"Python 中的嵌套列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34080828/

相关文章:

python - 如何使用 python 按字母顺序对 .txt 文件进行排序?

python - 如何使用远程机器人从服务器发送文件?

Python运行包无需安装

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'