Python | Lista de registros XOR

A veces, mientras programamos, tenemos un problema en el que es posible que necesitemos realizar ciertas operaciones bit a bit entre los elementos de la lista de tuplas. Esta es una utilidad esencial ya que nos encontramos con operaciones bit a bit muchas veces. Analicemos ciertas formas en que se puede realizar XOR.

Método n.º 1: Uso reduce() + lambda + “^” operatordel bucle +
Las funciones anteriores se pueden combinar para realizar esta tarea. Primero podemos aplanar la lista de tuplas usando loop y luego emplear reduce() para acumular el resultado de la lógica XOR especificada por la función lambda. Funciona solo con 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)) 
Producción :

The original list is : [(4, 6), (2, ), (3, 8, 9)]
The Bitwise XOR of records list elements are : 2

Método n.º 2: usarreduce() + operator.ixor + chain()
esta tarea también se puede realizar con este método. En esto, la tarea realizada por la función lambda en el método anterior se realiza usando la función ior para la operación XOR acumulativa, el aplanamiento de elementos a la lista se realiza usando chain(). Funciona solo con 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)) 
Producción :

The original list is : [(4, 6), (2, ), (3, 8, 9)]
The Bitwise XOR of records list elements are : 2

Publicación traducida automáticamente

Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *