Python程序:不使用递归展平列表


当需要在不使用递归技术的情况下展平列表时,可以使用 lambda 函数、'sum' 方法、'map' 方法和 'isinstance' 方法。

列表可以用来存储异构值(即任何数据类型的数据,如整数、浮点数、字符串等)。

‘isinstance’ 方法检查给定参数是否属于特定数据类型。

匿名函数是在没有名称的情况下定义的函数。通常,Python 中的函数使用 'def' 关键字定义,但匿名函数是在 'lambda' 关键字的帮助下定义的。它接受一个表达式,但可以接受任意数量的参数。它使用该表达式并返回其结果。

map 函数将给定的函数/操作应用于可迭代对象(如列表、元组)中的每个项目。它返回一个列表作为结果。

‘sum’ 方法将可迭代对象中存在的数值相加。

示例

下面是演示:

 在线演示

my_list = [[[11,[[32]],[[[53]]]],[[64],75]], [[6, 89, 99]]]
flattened_list = lambda my_list: sum(map(flattened_list,my_list),[]) if isinstance(my_list,list) else [my_list]
print("The original list is : ")
print(my_list)
print("The flattened list is :")
print(flattened_list(my_list))

输出

The original list is :
[[[11, [[32]], [[[53]]]], [[64], 75]], [[6, 89, 99]]]
The flattened list is :
[11, 32, 53, 64, 75, 6, 89, 99]

解释

  • 定义了一个嵌套列表,并在控制台上显示。
  • 使用 'sum' 方法将元素加起来,并使用 'map' 方法将其应用于每个元素。
  • 此操作的结果分配给一个变量。
  • 它在控制台上显示为输出。

更新于: 2021年3月12日

178 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.