You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何对嵌套数组的每个元素应用自定义函数?

解决嵌套数组元素批量应用自定义函数的问题

你的核心问题是原列表推导式只遍历了外层数组的子列表,没有深入到子列表的每个元素就直接调用myfunc,导致函数接收的是整个子列表而非单个元素。

最佳实现方案

最直观且可读性强的方式是使用嵌套列表推导式,外层遍历每个子列表,内层遍历子列表中的每个元素并应用myfunc:

[[myfunc(item) for item in sublist] for sublist in chordsFromGetSet]

示例验证

假设自定义函数为:

def myfunc(s):
    # 示例功能:将和弦符号转为小写
    return s.lower()

代入你的示例数组:

chordsFromGetSet = [['C'],['F','D'],['B']]
result = [[myfunc(item) for item in sublist] for sublist in chordsFromGetSet]
print(result)
# 输出:[['c'], ['f', 'd'], ['b']]

替代方案(基于map函数)

如果你习惯用map,也可以结合列表推导式实现,代码更简洁但可读性稍弱:

[list(map(myfunc, sublist)) for sublist in chordsFromGetSet]

这里map(myfunc, sublist)会把子列表中的每个元素传入myfunc处理,再通过list()将map对象转为列表,最终保持原有的嵌套结构。

内容的提问来源于stack exchange,提问作者whitebear

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 16:25:09