Supponiamo che io abbia una matrice come questa [4, 55, 578, 43, 81, 62, 7181]
Mi piacerebbe recuperare i primi 7 caratteri di questo array trascurando la cella, quindi in questo caso lo sarebbe 4555784
è possibile ciò senza concatenare i singoli elementi dell'array? Grazie.
risposte:
4 per risposta № 1Potresti farlo
"".join(map(str, arr))[:7]
Se arr
è molto lungo questo fa perdere tempo e spazio perchéconverte il tutto in una stringa solo per prendere i primi 7 caratteri. Invece, puoi convertire solo i primi 7 elementi (supponendo che ogni elemento abbia almeno una lunghezza), converti quella a una stringa e quindi prendere i primi 7 caratteri.
"".join(map(str, arr[:7]))[:7]
2 per risposta № 2
Presumo che tu voglia evitare di concatenare l'intero array. Per evitare ciò potresti fare qualcosa del genere:
a = [4, 55, 578, 43, 81, 62, 7181]
length = 7
chars = ""
counter = 0
while len(chars) < length:
chars = chars + str(a[counter])
counter = counter + 1
chars = chars[:length]
print chars, len(chars)
Ciò continua ad aggiungere più caratteri dalle voci dell'array fino a quando la lunghezza dei caratteri è maggiore del numero scelto. Filtra quindi tutti i caratteri extra aggiunti dalla voce finale.
2 per risposta № 3
Puoi usare join
e una lista di comprensione
"".join(str(x) for x in lst)[:7]