Python: รับอักขระตัวแรกของสตริงแรกในรายการหรือไม่?


99

ฉันจะรับอักขระตัวแรกจากสตริงแรกในรายการใน Python ได้อย่างไร

ดูเหมือนว่าฉันจะใช้ได้mylist[0][1:]แต่นั่นไม่ได้ทำให้ฉันมีคาแรกเตอร์

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

คำตอบ:


141

คุณเกือบจะมีสิทธิ์ วิธีที่ง่ายที่สุดคือ

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

ก็ใช้ได้เช่นกัน

คุณต้องการสิ้นสุดหลังอักขระตัวแรก (อักขระศูนย์) ไม่ใช่เริ่มต้นหลังอักขระตัวแรก (อักขระศูนย์) ซึ่งเป็นความหมายของรหัสในคำถามของคุณ


30

รับอักขระตัวแรกของสตริง 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 มาก

ห่อหัวของคุณไปรอบ ๆ โลกที่ขัดแย้งกันสองโลกของ "การแบ่งรายการการจัดทำดัชนีการตั้งค่าส่วนย่อย" ของ Numpy จากนั้น "การกำบังการแบ่งส่วนการย่อยการตั้งค่าการจัดทำดัชนีจากนั้นการจัดทำดัชนีแฟนซีที่เพิ่มขึ้นของ Numpy"

วิดีโอทั้งสองนี้เคลียร์สิ่งต่างๆให้ฉัน:

"การสูญเสียลูปของคุณการคำนวณเชิงตัวเลขอย่างรวดเร็วด้วย NumPy" โดย PyCon 2015: https://youtu.be/EEUXKG97YRw?t=22m22s

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


16

การสร้างดัชนีใน python เริ่มจาก 0 คุณเขียนว่า [1:] สิ่งนี้จะไม่ส่งคืน char แรกให้คุณไม่ว่าในกรณีใด ๆ - สิ่งนี้จะคืนค่าส่วนที่เหลือให้คุณ (ยกเว้นอักขระตัวแรก) ของสตริง

หากคุณมีโครงสร้างดังต่อไปนี้:

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

และต้องการรับ fist char สำหรับสตริงแรก (รายการ):

myList[0][0]
>>> b

หากตัวอักษรแรกทั้งหมด:

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

หากคุณมีข้อความ:

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

คุณช่วยอธิบายไวยากรณ์และความหมาย x [0] ได้ไหม โดยปกติฉันจะเริ่มลูปตั้งแต่สำหรับ
BI Dude

1
@BIDude [x [0] สำหรับ x ใน myList] เป็นความเข้าใจรายการ - hackernoon.com/list-comprehension-in-python-c762ba1f523f ดังนั้น x [0] หมายความว่าฉันต้องการนำแต่ละองค์ประกอบแรกจากองค์ประกอบ myList แต่ละองค์ประกอบ
Artsiom Rudzenka

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.