Python: obtenir le premier caractère de la première chaîne d'une liste?

96

Comment obtenir le premier caractère de la première chaîne d'une liste en Python?

Il semble que je pourrais utiliser mylist[0][1:]mais cela ne me donne pas le premier caractère.

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

Réponses:

138

Vous aviez presque raison. Le moyen le plus simple est

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

mais

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

fonctionnerait également.

Vous voulez terminer après le premier caractère (caractère zéro), pas commencer après le premier caractère (caractère zéro), ce que signifie le code de votre question.

agf
la source
30

Obtenez le premier caractère d'une chaîne python nue:

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

Récupère le premier caractère d'une chaîne en première position d'une liste python:

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

Beaucoup de gens se font trébucher ici parce qu'ils mélangent des opérateurs d'objets de liste Python et des opérateurs d'objets Numpy ndarray:

Les opérations Numpy sont très différentes des opérations de liste Python.

Enveloppez votre tête autour des deux mondes conflictuels de Python "tranchant de liste, indexation, sous-ensemble" et ensuite "masquage, découpage, sous-ensemble, indexation, puis indexation sophistiquée améliorée de Numpy".

Ces deux vidéos ont clarifié les choses pour moi:

"Perdre vos boucles, calcul numérique rapide avec NumPy" par PyCon 2015: https://youtu.be/EEUXKG97YRw?t=22m22s

"NumPy Débutant | Tutoriel SciPy 2016" par Alexandre Chabot LeClerc: https://youtu.be/gtejJ3RCddE?t=1h24m54s

Eric Leschinski
la source
14

Indexation en python à partir de 0. Vous avez écrit [1:] cela ne vous renverrait en aucun cas un premier caractère - cela vous renverra un reste (sauf le premier caractère) de chaîne.

Si vous avez la structure suivante:

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

Et que vous voulez obtenir un premier caractère pour la première chaîne (élément):

myList[0][0]
>>> b

Si tous les premiers caractères:

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

Si vous avez un texte:

text = 'base sample test'
text.split()[0][0]
>>> b
Artsiom Rudzenka
la source
pourriez-vous expliquer la syntaxe et la signification de x [0]? Normalement, je commence la boucle à partir de
BI Dude
1
@BIDude [x [0] for x in myList] est une compréhension de liste - hackernoon.com/list-comprehension-in-python-c762ba1f523f . Donc x [0] signifie que j'aimerais prendre chaque premier élément de chaque élément myList.
Artsiom Rudzenka
4

Essayez mylist[0][0]. Cela devrait renvoyer le premier caractère.

Constantinius
la source