Python 程序在不删除的情况下访问集合中的 K 元素

pythonserver side programmingprogramming更新于 2023/12/29 0:36:00

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


相关文章