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

开启你的职业生涯

完成课程获得认证

开始学习
广告