Ejemplos:
Entrada: lst = [1, 5, 3, 7, 9] K = 12 Salida: [(5, 7), (3, 9)] Entrada: lst = [2, 1, 5, 7, -1, 4] K = 6 Salida: [(2, 4), (1, 5), (7, -1)]
Método # 1: Pythonic Naive
Este es un enfoque ingenuo para el problema anterior. Primero, tomamos una lista vacía ' resolución ' e inicie el bucle y recorra cada elemento de la lista dada de enteros. En cada iteración, extraiga el elemento, guárdelo en "num", encuentre la diferencia restante para la suma K y verifique si hay una diferencia en la lista dada o no.
# Programa Python3 para encontrar todos los pares en
# lista de enteros con una cantidad dada
=
[]
while < /código>
lst:
res.append ((diff, num) )
< b> Salir:
[(5, 7) , (3, 9)]
Método # 2: Usando collections.Counter
Este enfoque sigue el mismo método que se discutió anteriormente usando collections.Counter
.
# Programa Python3 para encontrar todos los pares en
# lista de enteros con una cantidad dada
res
=
[]
cuenta
=
Contador (lst)
para
x
if
(x!
o
(x
=
1
):
return
res
< clase de código = "simple"> lst ]
K
=
Salir:
[ (5, 7), (3, 9)]
Método # 3: itertools.combinations
(Método Ingenuo)
Este es un enfoque ingenuo para usar itertools.combinations
. Usamos un ciclo for para recorrer cada combinación y encontrar la que queremos.
|
Salir:
[(5, 7), (3, 9)]