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

Python - ผลรวมของกำลังของสมาชิกที่ติดกันในลิสต์

คำนวณผลรวมของแต่ละค่ายกกำลังความถี่ (Frequency) ของการปรากฏติดกัน (Consecutive) ในลิสต์

ตัวอย่างโค้ด

my_list = [21, 21, 23, 23, 45, 45, 45, 56, 56, 67]
print("The list is :")
print(my_list)

my_freq = 1
my_result = 0

for index in range(0, len(my_list) - 1):
    if my_list[index] != my_list[index + 1]:
        my_result = my_result + my_list[index] ** my_freq
        my_freq = 1
    else:
        my_freq += 1

my_result = my_result + my_list[len(my_list) - 1] ** my_freq
print("The resultant value is :")
print(my_result)

ผลลัพธ์

The list is : [21, 21, 23, 23, 45, 45, 45, 56, 56, 67]
The resultant value is : 95298

คำอธิบาย

  • นับความถี่ติดกัน (my_freq)
  • เจอค่าต่างจากตัวถัดไป: บวก ค่า ** ความถี่ รีเซ็ตความถี่ = 1
  • เจอค่าเท่ากัน: เพิ่มความถี่
  • หลังลูป: บวกกลุ่มสุดท้าย
  • ตัวอย่าง: 21^2 + 23^2 + 45^3 + 56^2 + 67^1 = 441 + 529 + 91125 + 3136 + 67 = 95298