📜  Python|将三重嵌套转换为双重嵌套列表

📅  最后修改于: 2022-05-13 01:54:38.826000             🧑  作者: Mango

Python|将三重嵌套转换为双重嵌套列表

有时,在使用列表时,我们可能会遇到需要对嵌套列表执行扁平化的问题。这种问题已经讨论过很多次了。但有时,展平也可以从三重嵌套到双重嵌套。让我们讨论可以执行此任务的某些方式。

方法#1:使用列表推导
可以使用列表理解技术来执行此任务。在这种情况下,可以只取三重嵌套列表的初始元素并将其解包为双嵌套列表。

# Python3 code to demonstrate working of
# Convert Triple nesting to Double nesting list
# using list comprehension
  
# initialize list
test_list = [[[1, 4, 6]], [[8, 9, 10, 7]]]
  
# printing original list
print("The original list is : " + str(test_list))
  
# Convert Triple nesting to Double nesting list
# using list comprehension
res = [sub[0] for sub in test_list]
  
# printing result
print("Double nested list from triple nested : " + str(res))
输出 :
The original list is : [[[1, 4, 6]], [[8, 9, 10, 7]]]
Double nested list from triple nested : [[1, 4, 6], [8, 9, 10, 7]]

方法 #2:使用chain.from_iterable()
也可以使用此函数执行此任务。这是用于执行扁平化列表任务的内置方法,因此强烈建议执行此任务。

# Python3 code to demonstrate working of
# Convert Triple nesting to Double nesting list
# using chain.from_iterable()
from itertools import chain
  
# initialize list
test_list = [[[1, 4, 6]], [[8, 9, 10, 7]]]
  
# printing original list
print("The original list is : " + str(test_list))
  
# Convert Triple nesting to Double nesting list
# using list comprehension
res = list(chain.from_iterable(test_list))
  
# printing result
print("Double nested list from triple nested : " + str(res))
输出 :
The original list is : [[[1, 4, 6]], [[8, 9, 10, 7]]]
Double nested list from triple nested : [[1, 4, 6], [8, 9, 10, 7]]