Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

รูปแบบการเพิ่มสมาชิกสลับกันแบบเพิ่มขึ้น (Increasing Alternate Pattern) ในลิสต์ Python

โจทย์: จากลิสต์ที่กำหนด ให้สร้างลิสต์ใหม่โดยแทรกสัญลักษณ์ # จำนวนเพิ่มขึ้นทีละ 1 หลังสมาชิกแต่ละตัว

Input/Output

Input:  ['a', 'b', 'c']
Output: ['a', '#', 'b', '##', 'c', '###']

วิธีแก้: ใช้ Loop และ String Multiplication

alphabets = ['a', 'b', 'c']
result = []

for i in range(len(alphabets)):
    result.append(alphabets[i])      # เพิ่มสมาชิกเดิม
    result.append((i + 1) * '#')     # เพิ่ม # จำนวน i+1 ตัว

print(result)

ผลลัพธ์

['a', '#', 'b', '##', 'c', '###']

วิธี List Comprehension (Advanced)

alphabets = ['a', 'b', 'c']
result = [item for i, ch in enumerate(alphabets) for item in (ch, '#' * (i + 1))]
print(result)

การประยุกต์: รูปแบบนี้ใช้ได้ในการสร้าง Separator แบบ Dynamic, Visual representation, หรือ Test data generation