Python: Получить первый символ первой строки в списке? - PullRequest
73 голосов
/ 18 августа 2011

Как мне получить первый символ из первой строки в списке в Python?

Кажется, я мог бы использовать mylist[0][1:], но это не дает мне первый символ.

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

Ответы [ 4 ]

111 голосов
/ 18 августа 2011

Вы почти поняли это правильно.Самый простой способ -

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

, но

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

также будет работать.

Вы хотите end после первого символа (ноль символа), а не start после первого символа (ноль символа), что является кодом в вашем вопросезначит.

17 голосов
/ 02 октября 2015

Получить первый символ пустой строки Python:

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

Получить первый символ из строки в первой позиции списка Python:

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

Многие люди запутались здесь, потому что они смешивают операторы объектов списка Python и операторы объектов Numpy ndarray:

Операции Numpy сильно отличаются от операций со списком Python.

Оберните голову вокруг двух противоречивых миров: «нарезка списка, индексация, поднаборы» в Python, а затем «маскирование, нарезка, подмножество, индексация, а затем расширенное модное индексирование numpy».

Эти два видео прояснили для меня:

«Потеря циклов, быстрые числовые вычисления с NumPy» от PyCon 2015: https://youtu.be/EEUXKG97YRw?t=22m22s

«Учебник NumPy Beginner | SciPy 2016» Александра Шабо ЛеКлерка: https://youtu.be/gtejJ3RCddE?t=1h24m54s

13 голосов
/ 18 августа 2011

Индексирование в python начиная с 0. Вы написали [1:], что это не вернет вам первый символ в любом случае - это вернет вам остаток (кроме первого символа) строки.

Если выимеют следующую структуру:

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

и хотят получить первый символ (первая позиция):

myList[0][0]
>>> b

Если все первые символы:

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

Если у вас есть текст:

text = 'base sample test'
text.split()[0][0]
>>> b
4 голосов
/ 18 августа 2011

Попробуйте mylist[0][0].Это должно вернуть первый символ.

...