Python 访问集合中的第K个元素而不删除

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循环来访问set中的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值。

  • 如果条件为 true ,则中断循环。

  • 打印给定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

结论

在本文中,我们学习了3种不删除集合中的K元素的方法。我们学习了如何使用iter()函数遍历给定的可迭代对象,并使用next()函数移动到其后面的位置。最后,我们学习了如何从给定的集合中创建一个列表,以及如何使用index()函数来定位集合中元素的索引。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程