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

pythonserver side programmingprogramming更新于 2023/12/29 2:20:00

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() 函数

在下面的示例中,使用提供各种与运算符相关的内置函数的运算符库启动程序。然后创建原始列表 my_list 来存储字符串并显示列表。接下来,初始化将用于设置列表中的差异索引配对的 K 的初始值。然后使用内置函数 map() 接受一些参数 operator.concat(用于索引配对)和切片符号(my_list[:-1], my_list[K:])根据 K 值与特定索引配对。最后,显示结果。

示例

import operator
# 初始化列表
my_list = ["T", "U", "T", "O", "R", "I", "A", "L", "S", "P", "O", "I", "N", "T"]
# 打印原始列表
print("输入列表:" + str(my_list))
# 初始化 K 的初始值
K = 4
# 使用 map() 的 K 差异索引对
result = list(map(operator.concat, my_list[:-1], my_list[K:]))
# 打印结果
print("K 差异连接后的列表为:" + str(result))

输出

输入列表
['T', 'U', 'T', 'O', 'R', 'I', 'A', 'L', 'S', 'P', 'O', 'I', 'N', 'T']
K 差异连接后的列表为:['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)
# 初始化原始列表
my_list = ["T", "U", "T", "O", "R", "I", "A", "L", "S", "P", "O", "I", "N", "T"]
# 打印原始列表
print("原始输入列表:" + str(my_list))
# 初始化 K 的初始值
K = 3
# 列表中的 K 个差异索引配对
res = K_diff_pairs(my_list, K)
# 打印结果
print("K 个差异索引配对:" + str(res))

输出

原始输入列表:['T', 'U', 'T', 'O', 'R', 'I', 'A', 'L', 'S', 'P', 'O', 'I', 'N', 'T']
K 差索引配对:['TO', 'UR', 'TI', 'OA', 'RL', 'IS', 'AP', 'LO', 'SI', 'PN', 'OT']

使用简单的 while 循环

在下面的例子中,开始初始化变量 my_list 中的输入列表并显示相同内容。然后将 K 值初始化为 2,这意味着每个索引对与下一个索引的差值为 2。初始化变量 res 中的空列表,该列表将用于存储最终结果。使用 while 循环,变量 i 遍历原始列表的长度 (my_list) - k。然后使用内置函数 append(),通过计算原始列表索引 my_list[i] 与 k 值的总和(即 my_list[i+k))来插入元素。然后使用 += 运算符,变量迭代原始列表的特定索引。最后,它会打印结果。

示例

# 初始化原始列表
my_list = ["T", "U", "T", "O", "R", "I", "A", "L", "S", "P", "O", "I", "N", "T"]
# 打印原始列表
print("输入列表:" + str(my_list))
# 初始化 K 的初始值
K = 2
# 使用 while 循环:列表中的 K 差异索引配对
res = []
# 初始化 i 的初始值
i = 0
while i < len(my_list) - K:
    res.append(my_list[i] + my_list[i+K])
    i += 1
# 打印最终结果
print("K 差值索引配对: " + str(res))

输出

输入列表:['T', 'U', 'T', 'O', 'R', 'I', 'A', 'L', 'S', 'P', 'O', 'I', 'N', 'T']
K 差值索引配对:['TT', 'UO', 'TR', 'OI', 'RA', 'IL', 'AS', 'LP', 'SO', 'PI', 'ON', 'IT']

结论

K 差值是使用某些特定条件和操作将二元素列表配对的特定值。程序使用了各种内置方法,例如列表推导、while循环、map()、list()等。这种类型的程序通常用于构建需求数据的连接。


相关文章