📜  Python – 双元素行组合

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

Python – 双元素行组合

有时,在处理数据时,我们可能会遇到需要在列表中查找组合的问题。这可以很简单。但有时,我们需要对其进行变体并使用双元素行而不是单个元素。让我们讨论可以执行此任务的某些方式。

方法 #1:使用列表理解 + enumerate()
上述功能的组合可用于执行此任务。在此,我们遍历列表并使用理解和 enumerate() 执行组合。

# Python3 code to demonstrate 
# Dual element Rows Combinations
# using list comprehension + enumerate()
from collections import defaultdict
  
# Initializing list
test_list = [[3, 4], [5, 6], [7, 8]]
  
# printing original list 
print("The original list is : " + str(test_list))
  
# Dual element Rows Combinations
# using list comprehension + enumerate()
res = [test_list[idx - len(test_list)] + test_list[idx + 1 - len(test_list)] 
      for idx, ele in enumerate(test_list)]
  
# printing result 
print ("Combination of dual rows list is : " + str(res))
输出 :
The original list is : [[3, 4], [5, 6], [7, 8]]
Combination of dual rows list is : [[3, 4, 5, 6], [5, 6, 7, 8], [7, 8, 3, 4]]

方法 #2:使用map() + lambda + combinations()
上述功能的组合可用于执行此任务。其中,迭代和配对的任务分别由map()和combinations()完成。

# Python3 code to demonstrate 
# Dual element Rows Combinations
# using map() + lambda + combinations()
from itertools import combinations
  
# Initializing list
test_list = [[3, 4], [5, 6], [7, 8]]
  
# printing original list 
print("The original list is : " + str(test_list))
  
# Dual element Rows Combinations
# using map() + lambda + combinations()
res = list(map(lambda ele: ele[0] + ele[1], combinations(test_list, 2)))
  
# printing result 
print ("Combination of dual rows list is : " + str(res))
输出 :
The original list is : [[3, 4], [5, 6], [7, 8]]
Combination of dual rows list is : [[3, 4, 5, 6], [5, 6, 7, 8], [7, 8, 3, 4]]