Python: ottieni il primo carattere della prima stringa in un elenco?


96

Come posso ottenere il primo carattere dalla prima stringa in un elenco in Python?

Sembra che potrei usare mylist[0][1:]ma questo non mi dà il primo carattere.

>>> mylist = []
>>> mylist.append("asdf")
>>> mylist.append("jkl;")
>>> mylist[0][1:]
'sdf'

Risposte:


138

Hai quasi avuto ragione. Il modo più semplice è

mylist[0][0]   # get the first character from the first item in the list

ma

mylist[0][:1]  # get up to the first character in the first item in the list

funzionerebbe anche.

Vuoi finire dopo il primo carattere (carattere zero), non iniziare dopo il primo carattere (carattere zero), che è il significato del codice nella tua domanda.


30

Ottieni il primo carattere di una stringa Python nuda:

>>> mystring = "hello"
>>> print(mystring[0])
h
>>> print(mystring[:1])
h
>>> print(mystring[3])
l
>>> print(mystring[-1])
o
>>> print(mystring[2:3])
l
>>> print(mystring[2:4])
ll

Ottieni il primo carattere da una stringa nella prima posizione di un elenco di python:

>>> myarray = []
>>> myarray.append("blah")
>>> myarray[0][:1]
'b'
>>> myarray[0][-1]
'h'
>>> myarray[0][1:3]
'la'

Molte persone restano inciampate qui perché stanno mescolando operatori di oggetti elenco Python e operatori di oggetti Numpy ndarray:

Le operazioni di Numpy sono molto diverse dalle operazioni di elenco di Python.

Avvolgi la testa sui due mondi in conflitto di "list slicing, indexing, subsetting" di Python e poi "mascheramento, slicing, subsetting, indicizzazione di Numpy, quindi indicizzazione di fantasia migliorata di numpy".

Questi due video mi hanno chiarito le cose:

"Perdere i tuoi loop, calcolo numerico veloce con NumPy" di PyCon 2015: https://youtu.be/EEUXKG97YRw?t=22m22s

"NumPy Beginner | SciPy 2016 Tutorial" di Alexandre Chabot LeClerc: https://youtu.be/gtejJ3RCddE?t=1h24m54s


14

Indicizzazione in python a partire da 0. Hai scritto [1:] questo non ti restituirà un primo carattere in ogni caso - questo ti restituirà una pausa (eccetto il primo carattere) di stringa.

Se hai la seguente struttura:

mylist = ['base', 'sample', 'test']

E vuoi ottenere il primo carattere per la prima stringa (elemento):

myList[0][0]
>>> b

Se tutti i primi caratteri:

[x[0] for x in myList]
>>> ['b', 's', 't']    

Se hai un messaggio:

text = 'base sample test'
text.split()[0][0]
>>> b

potresti spiegare la sintassi e il significato di x [0]? Normalmente, inizio il loop da for
BI Dude

1
@BIDude [x [0] for x in myList] è una lista di comprensione - hackernoon.com/list-comprehension-in-python-c762ba1f523f . Quindi x [0] significa che vorrei prendere ogni primo elemento da ogni elemento myList.
Artsiom Rudzenka

4

Prova mylist[0][0]. Questo dovrebbe restituire il primo carattere.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.