Python - 过滤对应相同索引的两个列表的不相等元素
有时,在处理Python数据时,我们可能会遇到一个问题,即我们需要从多个不相等且具有相似索引的列表中提取值。这种问题可能出现在许多领域。让我们讨论一些可以解决这个问题的方法。
方法 #1:使用循环 + zip()
上述功能的组合可以用来解决这个问题。在此,我们使用 zip 提取组合索引元素,然后使用循环中的条件语句提取并检查不同之处。
# Python3 code to demonstrate working of
# Unequal Equi-index elements
# using loop + zip()
# initialize lists
test_list1 = ["a", "b", "c", "d"]
test_list2 = ["g", "b", "s", "d"]
# printing original lists
print("The original list 1 : " + str(test_list1))
print("The original list 2 : " + str(test_list2))
# Unequal Equi-index elements
# using loop + zip()
res = []
for i, j in zip(test_list1, test_list2):
if i != j:
res.append(i)
# printing result
print("Unequal index elements in lists : " + str(res))
输出 :
The original list 1 : ['a', 'b', 'c', 'd']
The original list 2 : ['g', 'b', 's', 'd']
Unequal index elements in lists : ['a', 'c']
方法 #2:使用zip()
+ 列表理解
这些功能的组合也可以用来解决这个问题。在此,我们使用与上述类似的方法,只是使用列表推导压缩的简写逻辑。
# Python3 code to demonstrate working of
# Unequal Equi-index elements
# using list comprehension + zip()
# initialize lists
test_list1 = ["a", "b", "c", "d"]
test_list2 = ["g", "b", "s", "d"]
# printing original lists
print("The original list 1 : " + str(test_list1))
print("The original list 2 : " + str(test_list2))
# Unequal Equi-index elements
# using list comprehension + zip()
res = [i for i, j in zip(test_list1, test_list2) if i != j]
# printing result
print("Unequal index elements in lists : " + str(res))
输出 :
The original list 1 : ['a', 'b', 'c', 'd']
The original list 2 : ['g', 'b', 's', 'd']
Unequal index elements in lists : ['a', 'c']