Python'da bir listedeki ilk dizeden ilk karakteri nasıl alırım?
Görünüşe göre kullanabilirim mylist[0][1:]
ama bu bana ilk karakteri vermiyor.
>>> mylist = []
>>> mylist.append("asdf")
>>> mylist.append("jkl;")
>>> mylist[0][1:]
'sdf'
Yanıtlar:
Neredeyse haklıydın. En basit yol,
mylist[0][0] # get the first character from the first item in the list
fakat
mylist[0][:1] # get up to the first character in the first item in the list
aynı zamanda işe yarar.
İlk karakterden (karakter sıfır) sonra başlamak değil, ilk karakterden (karakter sıfır) sonra bitirmek istiyorsunuz , bu, sorunuzdaki kodun anlamı budur.
Çıplak bir python dizesinin ilk karakterini alın:
>>> 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
Bir python listesinin ilk konumundaki bir dizeden ilk karakteri alın:
>>> myarray = []
>>> myarray.append("blah")
>>> myarray[0][:1]
'b'
>>> myarray[0][-1]
'h'
>>> myarray[0][1:3]
'la'
Python liste nesnelerinin operatörlerini ve Numpy ndarray nesnelerinin operatörlerini karıştırdıkları için birçok insan burada tökezliyor:
Numpy işlemleri python list işlemlerinden çok farklıdır.
Kafanızı Python'un "liste dilimleme, indeksleme, alt küme oluşturma" ve ardından Numpy'nin "maskeleme, dilimleme, alt küme oluşturma, indeksleme, sonra da numpy'nin gelişmiş fantezi indeksleme" nin iki çelişkili dünyasına sarın.
Bu iki video benim için işleri açıklığa kavuşturdu:
PyCon 2015'ten "Döngülerinizi Kaybetme, NumPy ile Hızlı Sayısal Hesaplama": https://youtu.be/EEUXKG97YRw?t=22m22s
"NumPy Beginner | SciPy 2016 Eğitimi", Alexandre Chabot LeClerc: https://youtu.be/gtejJ3RCddE?t=1h24m54s
0'dan başlayarak python'da indeksleme [1:] yazdınız, bu size her durumda bir ilk karakter döndürmez - bu size bir karakter dizisi (ilk karakter hariç) döndürecektir.
Aşağıdaki yapıya sahipseniz:
mylist = ['base', 'sample', 'test']
Ve ilk bir dize (öğe) için ilk karakter almak istiyorum:
myList[0][0]
>>> b
İlk karakterlerin tümü:
[x[0] for x in myList]
>>> ['b', 's', 't']
Bir metniniz varsa:
text = 'base sample test'
text.split()[0][0]
>>> b
Deneyin mylist[0][0]
. Bu, ilk karakteri döndürmelidir.