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()。這種型別的程式通常用於構建需求資料的連線。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP