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()函式在集合中查詢元素的索引。

更新於:2023年8月17日

瀏覽量:57

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告