/ / Ottenere i primi x caratteri da un array - python

Ottenere i primi x caratteri da un array - python

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 № 1

Potresti 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]