📜  Python - 列表中的K差索引配对

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

Python - 列表中的K差索引配对

有时在编程时,我们可能会遇到需要执行 K 个不同元素连接的问题。在学校编程或竞争性编程时可能会出现此问题。让我们讨论一些可以解决这个问题的方法。

方法 #1:使用列表理解 + zip()
以上功能的组合可以用来解决这个问题。在此,我们使用列表推导迭代列表并使用 zip() 形成对。

# Python3 code to demonstrate working of
# K difference index pairing in list
# using list comprehension + zip()
  
# initialize list 
test_list = ["G", "F", "G", "I", "S", "B", "E", "S", "T"]
  
# printing original list 
print("The original list : " + str(test_list))
  
# initialize K
K = 3
  
# K difference index pairing in list
# using list comprehension + zip()
res = [i + j for i, j in zip(test_list, test_list[K :])]
  
# printing result
print("List after K difference concatenation is : " + str(res))
输出 :
The original list : ['G', 'F', 'G', 'I', 'S', 'B', 'E', 'S', 'T']
List after K difference concatenation is : ['GI', 'FS', 'GB', 'IE', 'SS', 'BT']

方法 #2:使用map() + concat()
这些功能的组合也可以执行此任务。在这个遍历逻辑中由 map() 完成,concat 执行配对任务。它比上述方法更有效。

# Python3 code to demonstrate working of
# K difference index pairing in list
# using map() + concat
import operator
  
# initialize list 
test_list = ["G", "F", "G", "I", "S", "B", "E", "S", "T"]
  
# printing original list 
print("The original list : " + str(test_list))
  
# initialize K 
K = 3
  
# K difference index pairing in list
# using map() + concat
res = list(map(operator.concat, test_list[:-1], test_list[K:]))
  
# printing result
print("List after K difference concatenation is : " + str(res))
输出 :
The original list : ['G', 'F', 'G', 'I', 'S', 'B', 'E', 'S', 'T']
List after K difference concatenation is : ['GI', 'FS', 'GB', 'IE', 'SS', 'BT']