Python: Obter o primeiro caractere da primeira string em uma lista?


96

Como obteria o primeiro caractere da primeira string em uma lista em Python?

Parece que eu poderia usar, mylist[0][1:]mas isso não me dá o primeiro personagem.

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

Respostas:


138

Você quase acertou. A maneira mais simples é

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

mas

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

também funcionaria.

Você deseja terminar após o primeiro caractere (caractere zero), e não iniciar após o primeiro caractere (caractere zero), que é o que o código em sua pergunta significa.


30

Obtenha o primeiro caractere de uma string python simples:

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

Obtenha o primeiro caractere de uma string na primeira posição de uma lista Python:

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

Muitas pessoas se enganam aqui porque estão misturando operadores de objetos de lista do Python e operadores de objetos Numpy ndarray:

As operações numpy são muito diferentes das operações de lista python.

Enrole a sua cabeça em torno dos dois mundos conflitantes da "lista de segmentação, indexação, subconjunto" do Python e, em seguida, do "mascaramento, divisão, subconjunto, indexação e indexação sofisticada aprimorada do numpy" do Numpy.

Esses dois vídeos esclareceram as coisas para mim:

"Losing your Loops, Fast Numerical Computing with 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


14

Indexando em python começando de 0. Você escreveu [1:] isso não retornaria um primeiro caractere em nenhum caso - isso retornaria um resto (exceto o primeiro caractere) da string.

Se você tiver a seguinte estrutura:

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

E deseja obter o primeiro caractere para a primeira string (item):

myList[0][0]
>>> b

Se todos os primeiros caracteres:

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

Se você tiver um texto:

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

você poderia explicar a sintaxe e o significado de x [0]? Normalmente, eu começo o loop de
BI Dude

1
@BIDude [x [0] para x em myList] é uma compreensão de lista - hackernoon.com/list-comprehension-in-python-c762ba1f523f . Então x [0] significa que eu gostaria de pegar cada primeiro elemento de cada elemento myList.
Artsiom Rudzenka

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.