不使用递归技术展开列表的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("原始列表是:")
print(my_list)
print("展开的列表是:")
print(flattened_list(my_list))
输出
原始列表是 :
[[[11,[[32] ],[[[53]] ] ],[[[64],75]] ,[[6,89,99]]]
展开的列表是:
[11,32,53,64,75,6,89,99]
说明
- 定义嵌套的列表,并在控制台上显示。
- 使用 ‘ sum ‘ 方法将元素相加,并使用 ‘ map ‘ 方法将此应用于每个元素。
- 将操作的结果分配给变量。
- 它显示为控制台上的输出。