Python: ¿Obtiene el primer carácter de la primera cadena en una lista?

96

¿Cómo obtendría el primer carácter de la primera cadena en una lista en Python?

Parece que me vendría bien mylist[0][1:]pero eso no me da el primer carácter.

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

Respuestas:

138

Casi lo acertó. La forma más sencilla es

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

pero

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

también funcionaría.

Desea terminar después del primer carácter (carácter cero), no comenzar después del primer carácter (carácter cero), que es lo que significa el código en su pregunta.

agf
fuente
29

Obtenga el primer carácter de una cadena de Python desnuda:

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

Obtenga el primer carácter de una cadena en la primera posición de una lista de Python:

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

Muchas personas se tropiezan aquí porque están mezclando operadores de objetos de lista de Python y operadores de objetos Numpy ndarray:

Las operaciones Numpy son muy diferentes a las operaciones de lista de Python.

Envuelva su cabeza alrededor de los dos mundos conflictivos de Python "corte de lista, indexación, subconjunto" y luego "enmascaramiento, corte, subconjunto, indexación de Numpy, luego indexación sofisticada mejorada de Numpy".

Estos dos videos me aclararon las cosas:

"Perdiendo sus bucles, Computación numérica rápida con NumPy" por PyCon 2015: https://youtu.be/EEUXKG97YRw?t=22m22s

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

Eric Leschinski
fuente
14

Indexación en Python comenzando desde 0. Escribió [1:] esto no le devolvería un primer carácter en ningún caso - esto le devolverá un descanso (excepto el primer carácter) de la cadena.

Si tiene la siguiente estructura:

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

Y desea obtener el primer carácter para la primera cadena (elemento):

myList[0][0]
>>> b

Si todos los primeros caracteres:

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

Si tienes un mensaje de texto:

text = 'base sample test'
text.split()[0][0]
>>> b
Artsiom Rudzenka
fuente
¿Podría explicar la sintaxis y el significado de x [0]? Normalmente, comienzo el bucle desde para
BI Dude
1
@BIDude [x [0] para x en myList] es una lista de comprensión: hackernoon.com/list-comprehension-in-python-c762ba1f523f . Entonces x [0] significa que me gustaría tomar cada primer elemento de cada elemento myList.
Artsiom Rudzenka
4

Prueba mylist[0][0]. Esto debería devolver el primer carácter.

Constantinius
fuente