web-dev-qa-db-fra.com

Convertir un tableau d'entiers en chaîne en Python

Je veux convertir ma liste d'entiers en chaîne. Voici comment je crée la liste des entiers:

new = [0] * 6
for i in range(6):
    new[i] = random.randint(0,10)

Comme ça:

nouveau == [1,2,3,4,5,6]

sortie == '123456'

8
Mira Mira

Il y a certainement une façon plus simple de faire cela, mais voici un moyen très simple:

mystring = ""

for digit in new:
    mystring += str(digit)
7
jgritty

Avec Convertissez une liste de caractères en une chaîne vous pouvez simplement faire

''.join(map(str,new))
23
tynn

Arriver un peu en retard et élargir la question, mais vous pouvez utiliser le module array et utiliser:

from array import array

array('B', new).tobytes()

b'\n\t\x05\x00\x06\x05'

En pratique, il crée un tableau d'entiers de 1 octet de large (argument 'B') à partir de votre liste d'entiers. Le tableau est ensuite converti en chaîne en tant que structure de données binaires, de sorte que la sortie ne se présente pas comme prévu (vous pouvez corriger ce point avec decode()). Cependant, il devrait s'agir de l'une des méthodes de conversion d'entier en chaîne les plus rapides et vous permettra d'économiser de la mémoire. Voir aussi la documentation et les questions connexes:

https://www.python.org/doc/essays/list2str/

https://docs.python.org/3/library/array.html#module-array

Conversion d'un entier en chaîne en Python?

0
jloup

Vous pouvez parcourir les entiers de la liste lors de la conversion en type chaîne et de l'ajout à la variable "chaîne".

for int in list:
    string += str(int)
0
Cherry