📜  Python – 具有 K 的元素列出相似的索引值

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

Python – 具有 K 的元素列出相似的索引值

有时,在处理数据时,我们可能会遇到一个问题,即我们需要在特定索引的 K 个列表中获取相似的元素。这可以应用于许多领域,例如日间和其他领域。让我们讨论可以执行此任务的某些方式。

方法 #1:使用zip() + 循环
这是可以执行此任务的粗暴方式。在此,我们在压缩列表中迭代循环,并与特定索引中的元素进行相似性比较。

# Python3 code to demonstrate 
# Elements with K lists similar index value
# using zip() + loop
  
# Initializing lists
test_list1 = [1, 3, 5, 7]
test_list2 = [1, 4, 8, 9]
test_list3 = [3, 7, 5, 10]
  
# printing original lists
print("The original list 1 is : " + str(test_list1))
print("The original list 2 is : " + str(test_list2))
print("The original list 3 is : " + str(test_list3))
  
# Initializing K 
K = 2
  
# Elements with K lists similar index value
# using zip() + loop
res = []
for a, b, c in zip(test_list1, test_list2, test_list3):
    if a == b or b == c or c == a:
        if a == b:
            res.append(a)
        elif b == c:
            res.append(b)
        elif c == a:
            res.append(c)
  
# printing result 
print ("The list after checking on 2 lists : " + str(res))
输出 :
The original list 1 is : [1, 3, 5, 7]
The original list 2 is : [1, 4, 8, 9]
The original list 3 is : [3, 7, 5, 10]
The list after checking on 2 lists : [1, 5]

方法 #2:使用列表理解 + set() + count()
上述方法的组合也可用于执行此任务。在此,我们使用 count() 检查计数,其余功能使用列表理解执行。

# Python3 code to demonstrate 
# Elements with K lists similar index value
# using list comprehension + count() + set()
  
# Initializing lists
test_list1 = [1, 3, 5, 7]
test_list2 = [1, 4, 8, 9]
test_list3 = [3, 7, 5, 10]
  
# printing original lists
print("The original list 1 is : " + str(test_list1))
print("The original list 2 is : " + str(test_list2))
print("The original list 3 is : " + str(test_list3))
  
# Initializing K 
K = 2
  
# Elements with K lists similar index value
# using list comprehension + count() + set()
res = [ele for sub in zip(test_list1, test_list2, test_list3) for ele in set(sub) if sub.count(ele) > 1]
  
# printing result 
print ("The list after checking on 2 lists : " + str(res))
输出 :
The original list 1 is : [1, 3, 5, 7]
The original list 2 is : [1, 4, 8, 9]
The original list 3 is : [3, 7, 5, 10]
The list after checking on 2 lists : [1, 5]