Python|每第 N 个位置选择性合并列表
有时,在使用Python列表时,我们可能会遇到需要在列表中执行合并的问题。列表的简单合并更容易执行。但有时,我们需要处理合并中的变化。其中之一可以是在每个第 N 个元素处将一个列表与另一个列表合并。在日间编程和竞争性编程中可能会遇到这个特殊问题。让我们讨论一下可以执行此任务的特定方式。
方法:使用循环+ extend() + iter() + next()
在这种方法中,我们使用蛮力方法来解决这个问题。在此我们将一个更大的列表转换为一个迭代器,然后使用 next() 访问它的元素。这背后的整个想法是更快地访问元素。为每个 N 元素检查较小的列表。
# Python3 code to demonstrate working of
# Selective Merge list every Nth position
# using loop + extend() + iter() + next()
# initialize lists
test_list1 = [1, 4, 9, 10, 19, 65, 78, 23, 78]
test_list2 = [8, 14, 50]
# printing original lists
print("The original list 1 is : " + str(test_list1))
print("The original list 2 is : " + str(test_list2))
# Selective Merge list every Nth position
# using loop + extend() + iter() + next()
N = 3
temp_iter = iter(test_list1)
res = []
for ele in test_list2:
res.extend([next(temp_iter) for _ in range(N - 1)])
res.append(ele)
res.extend(temp_iter)
# printing result
print("The List after merge is : " + str(res))
输出 :
The original list 1 is : [1, 4, 9, 10, 19, 65, 78, 23, 78]
The original list 2 is : [8, 14, 50]
The List after merge is : [1, 4, 8, 9, 10, 14, 19, 65, 50, 78, 23, 78]