映射到多维列表

2024-10-16 20:39:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要一种简单的方法来跨多维嵌套列表应用函数。 我看到许多答案建议列表理解或嵌套列表理解,但考虑到我的列表可以有“n”个嵌套的前提条件,等式确实变得复杂了

输入

x = ['apple', ['banana','blossom'], ['cherry', ['jackfruit' , 'guava']]]

def lengthy(a):
   return len(a)

预期产量

ouptut = [5, [6, 7], [6, [9, 5]]]

当然,我的实际场景是一个比lengthy()更广泛的函数。然而,实际用例列表不能超过20个元素,最多5个嵌套级别。所以我更喜欢不使用生成器函数的解决方案。但是,如果不可否认,请同时指定将生成器转换为标准形式的方法

如果可以轻松地找到解决方案,则map的其他功能和替代方案也可以提供答案。我很想知道是否有任何特殊的库或内置程序可以解决这个问题。即使答案不涉及map函数的使用,也要有发言权


Tags: 方法函数答案mapapple列表解决方案建议
1条回答
网友
1楼 · 发布于 2024-10-16 20:39:17

我的看法:

x = ['apple', ['banana','blossom'], ['cherry', ['jackfruit' , 'guava', ['dragonfruit', 'fruit']]]]

def lenghty(x):
    for i in range(len(x)):
        if isinstance(x[i], str):
            x[i] = len(x[i])
        else:
            lenghty(x[i])

print(x)
lenghty(x)
print(x)

输出:

['apple', ['banana', 'blossom'], ['cherry', ['jackfruit', 'guava', ['dragonfruit', 'fruit']]]]
[5, [6, 7], [6, [9, 5, [11, 5]]]]

相关问题 更多 >