¿Cómo puedo fusionar dos números enteros (por ejemplo, 10 y 20) en Python y tener un número .Fusionar dos enteros en Python
Respuesta
La mejor manera de hacer esto en python fue dada en la respuesta aceptada, pero si desea hacer esto en plantillas jinja2, el operador de concatenación ~
le proporciona una forma clara de hacerlo, ya que busca la representación unicode de todos los objetos, por lo tanto, puede 'concatenar enteros' también.
Es decir que usted puede hacer esto (dado a=10
y b=20
):
{{ a ~ b }}
moldeada tanto en una cadena, concatenar las cadenas y luego emitir el resultado de nuevo a un entero:
z = int(str(x) + str(y))
Una áspera pero trabajando aplicación:
i1,i2 = 10,20
num = int('%i%i' % (i1,i2))
Básicamente, que acaba de fusionar dos números en una cadena y luego devolverlo a int.
usando viejo estilo de cadena de formato:
>>> x = 10
>>> y = 20
>>> z = int('%d%d' % (x, y))
>>> print z
1020
Usando matemáticas es probablemente más rápido que las soluciones que se convierten en str y Fondo:
Si usted puede asumir un segundo número de dos dígitos:
def f(x, y):
return x*100+y
Uso:
>>> f(1,2)
102
>>> f(10,20)
1020
Aunque, probablemente desee incluir algunos cheques para verificar que el segundo número no tenga más de dos dígitos. O, si su segundo número puede ser cualquier número de dígitos, que podría hacer algo como esto:
import math
def f(x, y):
a = math.floor(math.log10(y))
return int(x*10**(1+a)+y)
Uso:
>>> f(10,20)
1020
>>> f(99,193)
99193
Esta versión sin embargo, no permite que usted combine números como 03 y 02 para obtener 0302. Para eso necesitaría agregar argumentos para especificar el número de dígitos en cada entero, o usar cadenas.
sólo para dar otra solución:
def concat_ints(a, b):
return a*(10**len(str(b)))+b
>>> concat_ints(10, 20)
1020
supuesto, la respuesta 'correcta' sería la respuesta de Konstantin. Pero si todavía quiere saber cómo hacerlo sin necesidad de utilizar moldes de cadena, simplemente con las matemáticas:
import math
def numcat(a,b):
return int(math.pow(10,(int(math.log(b,10)) + 1)) * a + b)
>> numcat(10, 20)
>> 1020
No funcionará concatenándose 0 como 'lastnum = 3' como' numcat (lastnum, 0) 'ValueError: error de dominio matemático – DarkXDroid
Con esta función se puede concatenar tantos números como desee
def concat(*args):
string = ''
for each in args:
string += str(each)
return int(string)
Por ejemplo concat(20, 10, 30)
se volver 201030
una un entero
O
Usted puede utilizar t que un programa de línea de
int(''.join(str(x) for x in (20,10,30)))
Esto también volverá 201030
.
o simplemente lo hace:' concat = lambda * args: int ("". Join (map (str, args))) ', es más rápido :) – slallum
def concatenate_int(x, y):
try:
a = floor(log10(y))
except ValueError:
a = 0
return int(x * 10 ** (1 + a) + y)
def concatenate(*l):
j = 0
for i in list(*l):
j = concatenate_int(j, i)
return j
Sería bueno si también escribes alguna explicación a tu código. –
Una manera agradable, así sería utilizar el built-in reducir la función():
reduce(lambda x,y:x*10+y,[10,20])
- 1. Fusionar dos listas
- 2. Android fusionar dos imágenes
- 3. php fusionar dos matrices
- 4. fusionar dos expresiones regulares
- 5. Cómo fusionar dos listas IQueryable
- 6. Cómo fusionar dos objetos java.util.Properties?
- 7. ¿Cómo "fusionar" dos URI en Java?
- 8. Fusionar dos archivos XML en Java
- 9. fusionar y actualizar dos listas en C#
- 10. Cómo fusionar dos XmlDocuments en C#
- 11. Fusionar valores de dos formularios en enviar
- 12. Endianness de enteros en Python
- 13. XOR de dos enteros cortos
- 14. Contando duplicados enteros en Python
- 15. Combinar dos matrices de enteros
- 16. Cruce de dos enteros en bits
- 17. Concatenar dos enteros en Mathematica 7
- 18. ¿Cómo comparar correctamente dos enteros en Java?
- 19. Rangos enteros de Python
- 20. ¿Cómo puedo fusionar dos tablas MySQL?
- 21. Fusionar dos objetos JSON mediante programación
- 22. Concatenar/fusionar/unir dos árboles AVL
- 23. Cómo puedo fusionar dos árboles binarios
- 24. ¿Extender una función - fusionar dos funciones?
- 25. fusionar dos componentes de la lista
- 26. Comparar (y fusionar) dos proyectos VS C#
- 27. cómo fusionar 200 archivos csv en Python
- 28. Cómo convertir cadenas en enteros en Python?
- 29. Encontrar el mayor delta entre dos números enteros en una lista en Python
- 30. Operación dentro cuando agregamos dos objetos enteros?
¿No crees que importar matemática ralentizaría las cosas? – none
@gokcehan Sí, pero si tuviera que llamar a esta función muchas veces en un bucle, entonces el tiempo para importar matemática sería insignificante – Matt
Además, tiene más sentido matemáticamente que la manipulación de cadenas. – delnan