📜  Python|将嵌套子列表转换为元组

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

Python|将嵌套子列表转换为元组

有时,在处理大量数据时,我们可能会遇到每个数据点由多个元素组成的情况,并且需要作为单个单元进行处理。为此,我们有时可能只收到一个矩阵,它的组成数据点也是列表,它们没有多大意义和整体性,可能需要转换为元组。让我们讨论可以执行此任务的某些方式。

方法 #1:使用tuple() + 列表推导
这是解决此问题的单线方法。在此我们只遍历最里面的子列表并使用tuple()将每个列表转换为元组。

# Python3 code to demonstrate working of
# Convert nested sublist into tuples
# Using tuple() + list comprehension
  
# Initializing list
test_list = [[[1, 2, 3], [4, 6, 7]], [[6, 9, 8], [10, 11, 12]]]
  
# printing original list
print("The original list is : " + str(test_list))
  
# Convert nested sublist into tuples
# Using tuple() + list comprehension
res = [[tuple(ele) for ele in sub] for sub in test_list]
  
# printing result
print("The data after conversion to tuple is : " + str(res))
输出 :
The original list is : [[[1, 2, 3], [4, 6, 7]], [[6, 9, 8], [10, 11, 12]]]
The data after conversion to tuple is : [[(1, 2, 3), (4, 6, 7)], [(6, 9, 8), (10, 11, 12)]]

方法 #2:使用map() + 列表理解 + 元组
这是可以执行此任务的另一种方式。在此,我们减少了一个内部循环,并使用map()将元组转换的功能扩展到每个元素。

# Python3 code to demonstrate working of
# Convert nested sublist into tuples
# Using map() + list comprehension + tuple
  
# Initializing list
test_list = [[[1, 2, 3], [4, 6, 7]], [[6, 9, 8], [10, 11, 12]]]
  
# printing original list
print("The original list is : " + str(test_list))
  
# Convert nested sublist into tuples
# Using map() + list comprehension + tuple
res = [list(map(tuple, sub)) for sub in test_list]
  
# printing result
print("The data after conversion to tuple is : " + str(res))
输出 :
The original list is : [[[1, 2, 3], [4, 6, 7]], [[6, 9, 8], [10, 11, 12]]]
The data after conversion to tuple is : [[(1, 2, 3), (4, 6, 7)], [(6, 9, 8), (10, 11, 12)]]