2014-11-17 41 views
6

Voglio convertire la mia lista di numeri interi in una stringa. Ecco come ho creato l'elenco dei numeri interi:Converti array di interi in stringa in Python

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

Ti piace questa:

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

uscita == '123456'

+0

'nuovo = [random.randint (0,10) per i in range (6)]' sarebbe più semplice. – chepner

risposta

4

C'è sicuramente un modo lisciante per fare questo, ma qui c'è una via d'uscita molto semplice:

mystring = "" 

for digit in new: 
    mystring += str(digit) 
20

Con Convert a list of characters into a string si può solo fare

''.join(map(str,new)) 
+3

O per 'map'-avverso,' '' .join ([str (x) per x in new]) '. – chepner

+1

O anche ''' .join (str (random.randint (0, 10)) per i in range (10))' –

+0

Mi piace questo modo pythonic –

-1

Venendo un po 'tardi e che si estende in qualche modo la questione, ma si potrebbe sfruttare il modulo e array uso:

from array import array 

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

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

In pratica, si crea una matrice di 1 byte interi interi (argomento 'B') dall'elenco di numeri interi. L'array viene quindi convertito in una stringa come struttura di dati binari, pertanto l'output non apparirà come previsto (è possibile correggere questo punto con decode()). Tuttavia, dovrebbe essere uno dei metodi di conversione da intero a stringa più veloce e dovrebbe risparmiare un po 'di memoria. Vedi anche la documentazione e di questioni connesse:

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

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

Converting integer to string in Python?