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))
输出 :
The original list is : [(3, 1, 5), (1, 3, 6), (2, 5, 7), (5, 2, 8), (6, 3, 0)]
The indices of element at Kth position : [1, 4]
方法 #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))
输出 :
The original list is : [(3, 1, 5), (1, 3, 6), (2, 5, 7), (5, 2, 8), (6, 3, 0)]
The indices of element at Kth position : [1, 4]