Antworten:
Du hattest es fast richtig. Der einfachste Weg ist
mylist[0][0] # get the first character from the first item in the list
aber
mylist[0][:1] # get up to the first character in the first item in the list
würde auch funktionieren.
Sie wollen am Ende nach dem ersten Zeichen (Zeichen Null), nicht startet nach dem ersten Zeichen (Zeichen Null), das , was in Ihrer Frage Mitteln der Code ist.
Holen Sie sich das erste Zeichen einer nackten Python-Zeichenfolge:
>>> 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
Holen Sie sich das erste Zeichen aus einer Zeichenfolge an der ersten Position einer Python-Liste:
>>> myarray = []
>>> myarray.append("blah")
>>> myarray[0][:1]
'b'
>>> myarray[0][-1]
'h'
>>> myarray[0][1:3]
'la'
Viele Leute werden hier gestolpert, weil sie Operatoren von Python-Listenobjekten und Operatoren von Numpy ndarray-Objekten verwechseln:
Numpy-Operationen unterscheiden sich stark von Python-Listenoperationen.
Wickeln Sie Ihren Kopf um die beiden widersprüchlichen Welten von Pythons "List Slicing, Indexing, Subsetting" und dann Numpys "Masking, Slicing, Subsetting, Indexing, dann Numpys Enhanced Fancy Indexing".
Diese beiden Videos haben die Dinge für mich geklärt:
"Verlieren Sie Ihre Schleifen, schnelles numerisches Rechnen mit NumPy" von PyCon 2015: https://youtu.be/EEUXKG97YRw?t=22m22s
"NumPy Beginner | SciPy 2016 Tutorial" von Alexandre Chabot LeClerc: https://youtu.be/gtejJ3RCddE?t=1h24m54s
Indizierung in Python ab 0. Sie haben geschrieben [1:], dies würde Ihnen auf keinen Fall ein erstes Zeichen zurückgeben - dies gibt Ihnen eine Pause (außer dem ersten Zeichen) der Zeichenfolge zurück.
Wenn Sie die folgende Struktur haben:
mylist = ['base', 'sample', 'test']
Und möchten Faustzeichen für die erste Zeichenfolge (Element) erhalten:
myList[0][0]
>>> b
Wenn alle ersten Zeichen:
[x[0] for x in myList]
>>> ['b', 's', 't']
Wenn Sie einen Text haben:
text = 'base sample test'
text.split()[0][0]
>>> b
Versuchen Sie es mylist[0][0]
. Dies sollte das erste Zeichen zurückgeben.