Python: Dapatkan karakter pertama dari string pertama dalam daftar?

99

Bagaimana cara mendapatkan karakter pertama dari string pertama dalam daftar dengan Python?

Sepertinya saya bisa menggunakan mylist[0][1:]tapi itu tidak memberi saya karakter pertama.

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

Jawaban:

141

Anda hampir melakukannya dengan benar. Cara yang paling sederhana adalah

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

tapi

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

juga akan berhasil.

Anda ingin mengakhiri setelah karakter pertama (karakter nol), tidak memulai setelah karakter pertama (karakter nol), yang adalah apa kode berarti pertanyaan Anda.

agf
sumber
30

Dapatkan karakter pertama dari string python telanjang:

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

Dapatkan karakter pertama dari string di posisi pertama daftar python:

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

Banyak orang tersandung di sini karena mereka mencampur operator objek daftar Python dan operator objek ndarray Numpy:

Operasi numpy sangat berbeda dari operasi daftar python.

Bungkus kepala Anda di sekitar dua dunia yang saling bertentangan dari Python "list slicing, indexing, subsetting" dan kemudian Numpy "masking, slicing, subsetting, indexing, lalu numpy's fancy indexing".

Kedua video ini menjelaskan segalanya bagi saya:

"Kehilangan Loops Anda, Komputasi Numerik Cepat dengan NumPy" oleh PyCon 2015: https://youtu.be/EEUXKG97YRw?t=22m22s

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

Eric Leschinski
sumber
15

Pengindeksan dengan python mulai dari 0. Anda menulis [1:] ini tidak akan mengembalikan Anda karakter pertama dalam hal apapun - ini akan mengembalikan Anda sisa (kecuali karakter pertama) dari string.

Jika Anda memiliki struktur berikut:

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

Dan ingin mendapatkan karakter pertama untuk string pertama (item):

myList[0][0]
>>> b

Jika semua karakter pertama:

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

Jika Anda memiliki teks:

text = 'base sample test'
text.split()[0][0]
>>> b
Artsiom Rudzenka
sumber
bisakah Anda menjelaskan sintaks x [0] dan artinya? Biasanya, saya memulai loop dari untuk
BI Dude
1
@BIDude [x [0] untuk x di myList] adalah pemahaman daftar - hackernoon.com/list-comprehension-in-python-c762ba1f523f . Jadi x [0] berarti saya ingin mengambil setiap elemen pertama dari setiap elemen myList.
Artsiom Rudzenka
4

Coba mylist[0][0]. Ini harus mengembalikan karakter pertama.

Constantinius
sumber