ลบตัวอักษรที่อยู่ในตำแหน่ง index คี่ (1, 3, 5...) จากสตริง โดยสร้างสตริงใหม่เก็บเฉพาะ index คู่
ตัวอย่างโค้ด
def remove_odd_indices(s):
result = ''
for i, ch in enumerate(s):
if i % 2 == 0: # even index (0-based)
result += ch
return result
my_string = "Hi there Will"
print("Original:", my_string)
print("After removing odd indices:", remove_odd_indices(my_string))ผลลัพธ์
Original: Hi there Will After removing odd indices: H hr il
คำอธิบาย
ใช้
enumerate(s)ได้ทั้ง index และ characterเก็บเฉพาะ index ที่หาร 2 ลงตัว (
i % 2 == 0)Index 0-based: 0,2,4,6... คือตัวที่ 1,3,5,7... (odd position ในนิยามมนุษย์)
วิธีสั้นกว่า:
s[::2](slicing step 2)