Python程式:在集合中訪問第K個元素而不刪除
在Python中,集合是一個無序的唯一元素集合,用{}表示。它允許高效的成員測試並消除重複值,使其適用於刪除重複項或檢查集合之間共有元素等任務。
在本文中,我們將學習如何在Python中訪問集合中的第K個元素而不刪除它。
示例
假設我們已經輸入了一個集合和K值。我們現在將使用上述方法查詢該K值在輸入集合中的索引。
輸入
inputSet = {3, 9, 5, 1, 2, 8} k=5
輸出
The index of given K{ 5 } in an input set: 3
在上面的輸入集合中,輸入的K值(即5)位於輸入集合的第3個索引處。因此,輸入集合中K的位置是3。
使用的方法
以下是完成此任務的各種方法
使用for迴圈
使用next()和iter()函式
使用list()和index()函式
方法1:使用for迴圈
在這種方法中,我們將只使用一個簡單的for迴圈來訪問集合中的第K個元素,而不會刪除其中的任何元素。
演算法(步驟)
以下是執行所需任務的演算法/步驟。
建立一個變數來儲存輸入集合。
列印輸入集合。
建立一個另一個變數來儲存輸入k值。
假設初始結果位置為-1(因為索引從0開始)。
使用for迴圈遍歷輸入集合的每個元素。
在迴圈內將結果位置遞增1。
使用if條件語句檢查當前元素是否等於輸入的k值。
如果條件為真,則中斷迴圈。
列印給定K值在輸入集合中的結果索引。
示例
以下程式使用for迴圈返回給定K值在輸入集合中的索引
# input set inputSet = {3, 9, 5, 1, 2, 8} # printing input set print("Input Set:", inputSet) # input k value k = 5 # initializing the result position as -1(as index starts from 0) resultPosition = -1 # traversing through each element of the input set for e in inputSet: # incrementing the result position by 1 resultPosition += 1 # checking whether the current element is equal to the k if e == k: # breaking the loop if the condition is true break # printing resultant index print("The index of given K{", k, "} in an input set:", resultPosition)
輸出
執行上述程式後,將生成以下輸出
Input Set: {1, 2, 3, 5, 8, 9} The index of given K{ 5 } in an input set: 3
方法2:使用next()和iter()函式
在這種方法中,我們將使用next()和iter()函式來訪問集合中的第k個元素,而不會刪除任何其他元素。
iter()函式
返回一個迭代器物件。此函式將可迭代物件轉換為迭代器。
語法
iter(object, sentinel)
引數
object(必需):它是一個可迭代物件。
sentinel(可選):它是一個指示序列結束的值。
返回值:返回一個迭代器物件
next()函式
返回迭代器(如列表、字串、元組等)中的下一個專案。如果可迭代物件到達其末尾,您可以向返回值新增預設值。
演算法(步驟)
以下是執行所需任務的演算法/步驟。
使用iter()函式將輸入集合轉換為迭代器。
使用for迴圈使用len()函式遍歷輸入集合的長度(返回物件中的專案數)。
使用next()函式將輸入集合的索引/位置遞增到下一個位置。
使用if條件語句檢查當前元素是否等於輸入的k值。
如果條件為真,則中斷迴圈。
列印給定K值在輸入集合中的結果索引。
示例
以下程式使用next()和iter()函式返回給定K值在輸入集合中的索引
# input set inputSet = {3, 9, 5, 1, 2, 8} # printing input set print("Input Set:", inputSet) # input k value k = 5 # converting input set to the iterator setIter = iter(inputSet) # traversing through the length of input set for i in range(len(inputSet)): # incrementing the index/position of set to next position using next() function e = next(setIter) # checking whether the current element is equal to the k if e == k: # breaking the loop if the condition is true break # printing resultant index print("The index of given K{", k, "} in an input set:", i)
輸出
執行上述程式後,將生成以下輸出
Input Set: {1, 2, 3, 5, 8, 9} The index of given K{ 5 } in an input set: 3
方法3:使用list()和index()函式
在這個示例中,我們將使用Python的list()和index()函式的組合來訪問給定集合中的第K個元素。
index()函式
index()函式返回提供的值第一次出現的位置。
語法
list.index(element)
演算法(步驟)
以下是執行所需任務的演算法/步驟
使用list()函式(將序列/可迭代物件轉換為列表)將輸入集合轉換為列表。
使用index()函式透過將k傳遞給它來獲取輸入k值在上一個集合元素列表中的索引。
列印給定K值在輸入集合中的結果索引。
示例
以下程式使用list()和index()函式返回給定K值在輸入集合中的索引:
inputSet = {3, 9, 5, 1, 2, 8} # printing input set print("Input Set:", inputSet) # input k value k = 5 # converting input set into list setElementsList =list(inputSet) # getting the index of input k value from the above list of set elements resultPosition = setElementsList.index(k) # printing resultant index print("The index of given K{",k,"} in an input set:", resultPosition)
輸出
Input Set: {1, 2, 3, 5, 8, 9} The index of given K{ 5 } in an input set: 3
結論
在本文中,我們學習了三種不同的方法來訪問集合中第K個元素而不刪除它。我們學習瞭如何使用iter()函式遍歷給定的可迭代物件,以及如何使用next()函式轉到它的下一個位置。最後,我們學習瞭如何從給定的集合建立列表以及如何使用index()函式在集合中查詢元素的索引。