📜  Python|第 K 个元素值的索引

📅  最后修改于: 2022-05-13 01:54:39.520000             🧑  作者: Mango

Python|第 K 个元素值的索引

有时,在处理记录时,我们可能会遇到一个问题,即我们需要在元组的特定第 K 个位置找到特定值的所有元素索引。这似乎是一个特殊的问题,但是在处理记录中的许多键时,我们遇到了这个问题。让我们讨论一些可以解决这个问题的方法。

方法#1:使用循环

这是可以解决此问题的蛮力方法。在此,我们为索引保留一个计数器,如果我们在元组中的第 K 个位置找到特定记录,则将其附加到列表中。

# Python3 code to demonstrate working of
# Indices of Kth element value
# Using loop
  
# initialize list 
test_list = [(3, 1, 5), (1, 3, 6), (2, 5, 7),
                        (5, 2, 8), (6, 3, 0)]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initialize ele 
ele = 3
  
# initialize K 
K = 1 
  
# Indices of Kth element value
# Using loop
# using y for K = 1 
res = []
count = 0
for x, y, z in test_list:
    if y == ele:
        res.append(count)
    count = count + 1
  
# printing result
print("The indices of element at Kth position : " + str(res))
输出 :

方法 #2:使用enumerate() + 列表推导

上述功能的组合可以用来解决这个问题。在此,我们使用enumerate()索引,其余的执行方式与上述方法相同,但以紧凑的方式执行。

# Python3 code to demonstrate working of
# Indices of Kth element value
# Using enumerate() + list comprehension
  
# initialize list 
test_list = [(3, 1, 5), (1, 3, 6), (2, 5, 7), 
                        (5, 2, 8), (6, 3, 0)]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initialize ele 
ele = 3
  
# initialize K 
K = 1 
  
# Indices of Kth element value
# Using enumerate() + list comprehension
res = [a for a, b in enumerate(test_list) if b[K] == ele]
  
# printing result
print("The indices of element at Kth position : " + str(res))
输出 :