a = "programming in python is Fun"
a.find("i") = 8
มันจะส่งคืนดัชนีของการเกิดขึ้นครั้งแรกของ "i"
ใน a.
เป็นไปได้หรือไม่ที่จะค้นหาดัชนีของ "i"
ที่สอง?
a = "programming in python is Fun"
a.find("i") = 8
มันจะส่งคืนดัชนีของการเกิดขึ้นครั้งแรกของ "i"
ใน a.
เป็นไปได้หรือไม่ที่จะค้นหาดัชนีของ "i"
ที่สอง?
find()
รับดัชนีเริ่มต้นเพิ่มเติมซึ่งคุณสามารถใช้เป็น:
a = "programming in python is Fun"
first = a.find('i')
print(a.find('i',first+1))
คุณสามารถใช้ enumerate()
กับ list comprehension เพื่อค้นหาดัชนีทั้งหมดเป็น:
s = "programming in python is Fun"
my_char = "i"
my_indexes = [i for i, x in enumerate(s) if x == my_char]
# where `my_indexes` holds:
# [8, 12, 22]
ที่นี่ my_char
คืออักขระที่คุณต้องการค้นหาดัชนี และ my_indexes
คือรายการที่มีดัชนีของแต่ละครั้งที่พบ my_char
ในสตริง โปรดดูรายละเอียดเพิ่มเติมใน enumerate()
เอกสาร
ดังนั้นคุณสามารถเข้าถึงดัชนีการเกิดครั้งที่สองได้ดังนี้:
>>> my_indexes[1]
12
.find()
บนกระดาษ แต่อัลโกก็ดีกว่านะ ถ้าฉันทำได้ ให้ลบ , x in enumerate
, ì for i in s
ออกก็ไม่เป็นไร สตริงเป็นเพียงรายการตัวอักษร
- person Loïc; 03.02.2021
คุณยังสามารถใช้ numpy
ได้ด้วยวิธีต่อไปนี้:
import numpy as np
a = "programming in python is Fun"
x = np.frombuffer(a.encode(), dtype=np.uint8)
np.where(x == ord('i')) # (array([ 8, 12, 22]),)
การใช้ np.frombuffer
ตีความ str ใหม่เป็นบัฟเฟอร์ถ่าน จากนั้นใช้ < a href="https://numpy.org/doc/stable/reference/generated/numpy.where.html" rel="nofollow noreferrer">np.where
จะส่งคืนดัชนีทั้งหมดที่จะตรงกับตัวละครที่คุณเป็น สนใจ (หรือแม่นยำกว่านั้นคือจำนวนเต็มที่แสดงถึงอักขระ Unicode โดยใช้ ord
< /ก>)