Python 程序在不删除的情况下访问集合中的 K 元素
在 Python 中,集合 是唯一元素的无序集合,用 {} 表示。它允许进行有效的成员测试并消除重复值,使其可用于诸如删除重复项或检查集合之间的共同元素等任务。
在本文中,我们将学习如何在 Python 中访问集合中的 K 元素而不进行删除。
示例
假设我们已获取 输入集 和 K 元素。现在,我们将使用上述方法在输入集中找到该 K 元素的索引。
输入
inputSet = {3, 9, 5, 1, 2, 8} k=5
输出
给定 K{ 5 } 在输入集中的索引: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 个元素的索引
# 输入集 inputSet = {3, 9, 5, 1, 2, 8} # 打印输入集 print("Input Set:", inputSet) # 输入 k 值 k = 5 # 将结果位置初始化为 -1(因为索引从 0 开始) resultPosition = -1 # 遍历输入集的每个元素 for e in inputSet: # 将结果位置增加 1 resultPosition += 1 # 检查当前元素是否等于 k if e == k: # 如果条件为真,则中断循环 break # 打印结果索引 print("给定 K{", k, "} 在输入集合中的索引:", resultPosition)
输出
执行时,上述程序将生成以下输出
输入集:{1, 2, 3, 5, 8, 9} 给定 K{ 5 } 在输入集合中的索引:3
方法 2:使用 next() 和 iter() 函数
在此方法中,我们将使用 next() 和 iter() 函数访问集合中的 k 元素,而不删除任何其他元素
iter function()
返回迭代器对象。此函数将可迭代对象转换为迭代器。
语法
iter(object, sentinel)
参数
object(必需):它是一个可迭代对象。
sentinel(可选):它是一个指示序列结束的值。
返回值:返回一个迭代器对象
next() 函数
返回迭代器中的下一个项目,如列表、字符串元组等。如果可迭代对象到达其末尾,则可以向返回添加默认返回值。
算法(步骤)
以下是执行所需任务所要遵循的算法/步骤 –。
使用 iter() 函数将输入集转换为迭代器。
使用 for 循环 遍历输入集的长度,使用 len() 函数(返回对象中的项目数)。
使用 next() 函数将输入集的索引/位置增加到下一个位置
使用 if 条件 语句检查当前元素是否等于输入的 k 值。
如果条件为 true,则中断循环。
打印输入集中给定 K 元素的结果索引。
示例
以下程序返回使用 next() 和 iter() 函数获取输入集中给定 K 元素的索引
# 输入集 inputSet = {3, 9, 5, 1, 2, 8} # 打印输入集 print("Input Set:", inputSet) # 输入 k 值 k = 5 # 将输入集转换为迭代器 setIter = iter(inputSet) # 遍历输入集的长度 for i in range(len(inputSet)): # 使用 next() 函数将集合的索引/位置增加到下一个位置 e = next(setIter) # 检查当前元素是否等于 k if e == k: # 如果条件为真,则中断循环 break # 打印结果索引 print("给定 K{", k, "} 在输入集合中的索引:", i)
输出
执行时,上述程序将生成以下输出
输入集:{1, 2, 3, 5, 8, 9} 给定 K{ 5 } 在输入集合中的索引: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} # 打印输入集 print("输入集:", inputSet) # 输入 k 值 k = 5 # 将输入集转换为列表 setElementsList =list(inputSet) # 从上面的集合元素列表中获取输入 k 值的索引 resultPosition = setElementsList.index(k) # 打印结果索引 print("输入集中给定 K{",k,"} 的索引:", resultPosition)
输出
输入集:{1, 2, 3, 5, 8, 9} 给定 K{ 5 } 在输入集合中的索引:3
结论
在本文中,我们学习了 3 种不同的方法来访问集合中的 K 元素而不进行删除。我们学习了如何使用 iter() 函数循环遍历给定的可迭代对象,以及如何使用 next() 函数转到其下一个位置。最后,我们学习了如何从给定的集合创建列表以及如何使用 index() 函数在集合中定位元素的索引。