📜  Python – 具有 K 索引值的记录

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

Python – 具有 K 索引值的记录

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

方法#1:使用循环
这是可以解决此问题的蛮力方法。如果我们在元组中的第 K 个位置找到特定记录,我们会检查并附加到列表中。

# Python3 code to demonstrate working of
# Records with Value at K index
# 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
  
# Records with Value at K index
# Using loop
# using y for K = 1 
res = []
for x, y, z in test_list:
    if y == ele:
        res.append((x, y, z))
  
# printing result
print("The tuples 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 tuples of element at Kth position : [(1, 3, 6), (6, 3, 0)]

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

# Python3 code to demonstrate working of
# Records with Value at K index
# 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
  
# Records with Value at K index
# Using enumerate() + list comprehension
res = [b for a, b in enumerate(test_list) if b[K] == ele]
  
# printing result
print("The tuples 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 tuples of element at Kth position : [(1, 3, 6), (6, 3, 0)]