การค้นหา substring
วันใหม่ของการทำงาน และต้องทำความสะอาดชุดข้อมูลสำหรับโปรเจกต์ทำนายภาพยนตร์ต่อ ระหว่างสำรวจชุดข้อมูล พบรูปแบบที่ผิดปกติ: มีคำที่ซ้ำกันติดต่อกันปรากฏอยู่ระหว่างตัวอักษรที่ตำแหน่ง 37 ถึงตำแหน่ง 41 จึงตัดสินใจเขียนฟังก์ชันเพื่อตรวจหาว่ารีวิวภาพยนตร์เรื่องใดมีลักษณะดังกล่าว โดยจำไว้ว่าตำแหน่งปลายที่ระบุจะไม่ถูกนับรวม และถ้าตรวจพบคำนั้น ก็ต้องการแทนที่ด้วยคำเดียว
เติมคำสั่ง if-else ให้ครบตามคำแนะนำ
ข้อความรีวิวภาพยนตร์ทั้ง 3 เรื่องถูกบันทึกไว้ในตัวแปร movies แล้ว สามารถใช้ print(movies) เพื่อดูข้อมูลใน IPython Shell ได้
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Regular Expressions ใน Python
คำแนะนำการฝึกหัด
- ตรวจสอบว่า substring
actorปรากฏระหว่างตัวอักษรที่ index37ถึง41(รวมทั้งสองปลาย) หรือไม่ ถ้าไม่พบให้พิมพ์ข้อความWord not found - แทนที่
actor actorด้วย substringactorถ้าactorปรากฏซ้ำกันสองครั้งติดต่อกัน - แทนที่
actor actor actorด้วย substringactorถ้าactorปรากฏซ้ำกันสามครั้งติดต่อกัน
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
for movie in movies:
# If actor is not found between character 37 and 41 inclusive
# Print word not found
if movie.find("____", ____, ____) == ____:
print("Word not found")
# Count occurrences and replace two with one
elif movie.____("____") == 2:
print(movie.replace("____", "____"))
else:
# Replace three occurrences with one
print(movie.replace("____", "____"))