Python: Das erste Zeichen der ersten Zeichenfolge in einer Liste abrufen?


93

Wie würde ich das erste Zeichen aus der ersten Zeichenfolge in einer Liste in Python erhalten?

Es scheint, dass ich verwenden könnte, mylist[0][1:]aber das gibt mir nicht den ersten Charakter.

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

Antworten:


137

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.


29

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


14

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

Könnten Sie bitte die Syntax und Bedeutung von x [0] erklären? Normalerweise starte ich die Schleife von for
BI Dude

1
@BIDude [x [0] für x in myList] ist ein Listenverständnis - hackernoon.com/list-comprehension-in-python-c762ba1f523f . X [0] bedeutet also, dass ich jedes erste Element von jedem myList-Element nehmen möchte.
Artsiom Rudzenka

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.