Python 列表中 K 差值索引配对
K 是一个特殊数字,它设置从第 0 个索引开始的差值之和。例如,如果 k = 3,则意味着将第 0 个索引加上 K 并找到精确的配对。在 Python 中,我们有一些内置函数,例如 str()、len() 和 append() 将用于解决列表中的 K 差值索引配对问题。
让我们来看一个列表的例子。
给定的列表,[“A”, “B”, “C”, “D”, “E”, “F”]
然后将 K 值设置为 1
最终输出将索引配对为 [“AC”, “BD”, “CE”, “DF”]
语法
以下语法在示例中使用:
str()
内置函数 str() 将值转换为字符串,以便可以将其与其他字符串集成。
len()
len() 是 Python 中的内置函数,它返回对象的长度。
append()
内置函数 append() 将元素添加到列表的末尾。
使用 map() 函数
在下面的示例中,程序从 operator 库开始,该库提供了与运算符相关的各种内置函数。然后创建原始列表 my_list 来存储字符串并显示列表。接下来,初始化 K 的初始值,该值将用于设置列表中的差值索引配对。然后使用内置函数 map(),它接受一些参数 operator.concat(用于索引配对)和切片表示法 (my_list[:-1],my_list[K:]) 以根据 K 值配对特定索引。最后,显示结果。
示例
import operator # initialize list my_list = ["T", "U", "T", "O", "R", "I", "A", "L", "S", "P", "O", "I", "N", "T"] # print the original list print("The input list : " + str(my_list)) # Initiaze the initial value of K K = 4 # The K difference index pair using map() result = list(map(operator.concat, my_list[:-1], my_list[K:])) # printing result print("List after K difference concatenation is : " + str(result))
输出
The input list ['T', 'U', 'T', 'O', 'R', 'I', 'A', 'L', 'S', 'P', 'O', 'I', 'N', 'T'] List after K difference concatenation is : ['TR', 'UI', 'TA', 'OL', 'RS', 'IP', 'AO', 'LI', 'SN', 'PT']
使用递归
在下面的示例中,程序使用递归函数 f_diff_pairs(),该函数接受两个参数 l 和 k 以分别从原始列表变量 my_list 和 K 值中获取值。然后使用第一个 if 语句将条件设置为 K 值小于等于原始列表的长度并返回空列表。然后使用另一个 if 语句设置条件:如果 K 值等于 1,则返回列表推导式以计算从索引 1 开始的 K 差值,否则它将返回从原始列表的第 0 个索引开始的索引并计算列表中的索引配对。
示例
def K_diff_pairs(l, K): if K >= len(l): return [] if K == 1: return [l[i]+_list[i+1] for i in range(len(l)-1)] return [l[0]+l[K]] + K_diff_pairs(l[1:], K) # Intialization of original list my_list = ["T", "U", "T", "O", "R", "I", "A", "L", "S", "P", "O", "I", "N", "T"] # printing original list print("The original input list: " + str(my_list)) # initialize the initial value of K K = 3 # K difference index pairing in list res = K_diff_pairs(my_list, K) # print the result print("The K difference index pairing: " + str(res))
输出
The original input list: ['T', 'U', 'T', 'O', 'R', 'I', 'A', 'L', 'S', 'P', 'O', 'I', 'N', 'T'] The K difference index pairing: ['TO', 'UR', 'TI', 'OA', 'RL', 'IS', 'AP', 'LO', 'SI', 'PN', 'OT']
使用简单的 while 循环
在下面的示例中,首先在变量 my_list 中初始化输入列表并显示相同的列表。然后将 K 值初始化为 2,这意味着每个索引都与下一个索引配对,差值为 2。在变量 res 中初始化空列表,该列表将用于存储最终结果。使用 while 循环,变量 i 遍历原始列表的 length(my_list) - k。然后使用内置函数 append(),它通过计算原始列表索引 my_list[i] 与 k 值(即 my_list[i+k])的和来插入元素。然后使用 += 运算符,变量迭代原始列表的特定索引。最后,它将打印结果。
示例
# Initialization of original list my_list = ["T", "U", "T", "O", "R", "I", "A", "L", "S", "P", "O", "I", "N", "T"] # print the original list print("The input list: " + str(my_list)) # Initialize the initial value of K K = 2 # Using a while loop: K difference index pairing in list res = [] # Initialize the initial value of i i = 0 while i < len(my_list) - K: res.append(my_list[i] + my_list[i+K]) i += 1 # print the final result print("The K difference index pairing: " + str(res))
输出
The input list: ['T', 'U', 'T', 'O', 'R', 'I', 'A', 'L', 'S', 'P', 'O', 'I', 'N', 'T'] The K difference index pairing: ['TT', 'UO', 'TR', 'OI', 'RA', 'IL', 'AS', 'LP', 'SO', 'PI', 'ON', 'IT']
结论
K 差值是一个特定值,它使用一些特定条件和运算来配对两个元素的列表。该程序使用各种内置方法,例如列表推导式、while 循环、map() 和 list()。这种类型的程序通常用于构建需求数据的连接。