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