Comment puis-je fusionner deux nombres entiers (par exemple 10 et 20) en Python et avoir un nombre .Fusionner deux entiers en Python
Répondre
La meilleure façon de faire cela en python a été donnée dans la réponse acceptée - mais si vous voulez le faire dans les templates jinja2 - l'opérateur de concaténation ~
vous donne un bon moyen de le faire car il recherche la représentation unicode de Ainsi, vous pouvez également «concaténer des entiers».
qui vous pouvez le faire (donné a=10
et b=20
):
{{ a ~ b }}
Cast à la fois à une chaîne, concaténer les cordes, puis jeter le résultat à un entier:
z = int(str(x) + str(y))
Une mise en œuvre rude, mais travailler:
i1,i2 = 10,20
num = int('%i%i' % (i1,i2))
Fondamentalement, vous fusionner juste deux numéros dans une chaîne, puis renvoyer ce retour à int.
en utilisant la chaîne ancienne mise en forme:
>>> x = 10
>>> y = 20
>>> z = int('%d%d' % (x, y))
>>> print z
1020
En utilisant les mathématiques est probablement plus rapide que les solutions qui convertissent à str et arrière:
Si vous pouvez prendre un deuxième numéro à deux chiffres:
def f(x, y):
return x*100+y
Utilisation:
>>> f(1,2)
102
>>> f(10,20)
1020
Bien que, vous voudriez probablement quelques vérifications incluses pour vérifier que le deuxième nombre n'est pas plus de deux chiffres. Ou, si votre deuxième numéro peut être un certain nombre de chiffres, vous pourriez faire quelque chose comme ceci:
import math
def f(x, y):
a = math.floor(math.log10(y))
return int(x*10**(1+a)+y)
Utilisation:
>>> f(10,20)
1020
>>> f(99,193)
99193
Cette version cependant, ne vous permet pas de fusionner des chiffres comme 03 et 02 pour obtenir 0302. Pour cela, vous devrez soit ajouter des arguments pour spécifier le nombre de chiffres dans chaque entier, soit utiliser des chaînes.
Juste pour donner une autre solution:
def concat_ints(a, b):
return a*(10**len(str(b)))+b
>>> concat_ints(10, 20)
1020
Bien sûr, la réponse 'correcte' serait la réponse de Konstantin. Mais si vous voulez toujours savoir comment le faire sans utiliser des moulages de cordes, juste avec les mathématiques:
import math
def numcat(a,b):
return int(math.pow(10,(int(math.log(b,10)) + 1)) * a + b)
>> numcat(10, 20)
>> 1020
Ne fonctionne pas concaténation 0 comme 'lastlum = 3' comme' numcat (lastnum, 0) 'ValueError: erreur de domaine mathématique – DarkXDroid
Cette fonction vous pouvez concaténer autant de numéros que vous voulez
def concat(*args):
string = ''
for each in args:
string += str(each)
return int(string)
Par exemple concat(20, 10, 30)
sera retour 201030
un entier
OU
Vous pouvez utiliser t il un programme de ligne
int(''.join(str(x) for x in (20,10,30)))
Ce sera également de retour 201030
.
ou juste faire:' concat = lambda * args: int ("". Join (map (str, args))) ', c'est plus rapide :) – 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
Il serait bon que vous écrivez aussi quelques explications à votre code. –
Une belle façon aussi bien serait d'utiliser le intégré réduire() fonction:
reduce(lambda x,y:x*10+y,[10,20])
- 1. Fusionner deux objets en Python
- 2. Comment fusionner deux parcelles en Python?
- 3. Fusionner deux fichiers en Python et trier
- 4. Comment fusionner deux tuples en Python?
- 5. Fusionner deux listes imbriquées en Python
- 6. Comment fusionner deux itérateurs python?
- 7. svn fusionner des répertoires entiers en conflit
- 8. entiers char en Python
- 9. Endianness des entiers en Python
- 10. Fusionner deux listes de listes - Python
- 11. Comment puis-je fusionner deux colonnes en python
- 12. fusionner deux fichiers triés en utilisant awk ou python
- 13. Fusionner deux tableaux dans une matrice en python et trier
- 14. Fusionner deux CSV avec des colonnes uniques en python
- 15. Python: fusionner deux objets séparés en un seul?
- 16. Fusionner deux dictionnaires en python avec des listes comme valeurs
- 17. Fusionner deux fichiers de différentes longueurs en Python
- 18. mysql: fusionner deux colonnes en deux rangées
- 19. Comment graver des entiers entiers en python avec Beautiful Soup?
- 20. Fusionner deux tables en une
- 21. fusionner deux objets en php
- 22. Fusionner deux textes en javascript
- 23. Fusionner deux images en C# /. NET
- 24. Fusionner trois dictionnaires en Python
- 25. Crossover deux entiers bitwise
- 26. Python: Création d'un entier unique à partir de deux entiers?
- 27. Multiplication de deux entiers donnés en binaire
- 28. Comparer deux objets entiers en Java
- 29. Fusionner deux mises en page en une
- 30. Python: afficher et compter les diviseurs de deux entiers
ne pensez-vous pas que l'importation de maths ralentirait les choses? – none
@gokcehan Oui, mais si vous deviez appeler cette fonction plusieurs fois dans une boucle, le temps d'importer des maths serait insignifiant. – Matt
En outre, cela a plus de sens mathématique que la manipulation de chaînes. – delnan