Python|记录列表异或
有时,在编程时,我们可能需要在元组列表元素之间执行某些按位运算。这是一个必不可少的实用程序,因为我们多次遇到按位运算。让我们讨论可以执行 XOR 的某些方式。
方法 #1:使用reduce() + lambda + “^” operator
+ 循环
可以组合上述功能来执行此任务。我们可以首先使用循环展平元组列表,然后使用 reduce() 来累积 lambda函数指定的 XOR 逻辑的结果。仅适用于 Python2。
# Python code to demonstrate working of
# Records list XOR
# Using reduce() + lambda + "^" operator + loops
# initializing list
test_list = [(4, 6), (2, ), (3, 8, 9)]
# printing original list
print("The original list is : " + str(test_list))
# Records list XOR
# Using reduce() + lambda + "^" operator + loops
temp = []
for sub in test_list:
for ele in sub:
temp.append(ele)
res = reduce(lambda x, y: x ^ y, temp)
# printing result
print("The Bitwise XOR of records list elements are : " + str(res))
输出 :
The original list is : [(4, 6), (2, ), (3, 8, 9)]
The Bitwise XOR of records list elements are : 2
方法 #2:使用reduce() + operator.ixor + chain()
也可以使用此方法执行此任务。在这种情况下,上述方法中 lambda函数执行的任务是使用 ior函数执行累积异或运算,将元素展平到列表是使用 chain() 执行的。仅适用于 Python2。
# Python code to demonstrate working of
# Records list XOR
# Using reduce() + operator.ixor
from operator import ixor
from itertools import chain
# initializing list
test_list = [(4, 6), (2, ), (3, 8, 9)]
# printing original list
print("The original list is : " + str(test_list))
# Records list XOR
# Using reduce() + operator.ixor
temp = list(chain(*test_list))
res = reduce(ixor, temp)
# printing result
print("The Bitwise XOR of records list elements are : " + str(res))
输出 :
The original list is : [(4, 6), (2, ), (3, 8, 9)]
The Bitwise XOR of records list elements are : 2