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

Reform K-digit Elements: จัดกลุ่มตัวเลขใหม่เป็นชุดละ K หลัก

แนวคิด

นำลิสต์ตัวเลขมารวมเป็นสตริงต่อเนื่อง แล้วตัดเป็นชุดละ K หลัก แปลงกลับเป็นตัวเลข

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

my_list = [231, 67, 232, 1, 238, 31, 793]
print("ลิสต์:", my_list)

K = 3
print("K =", K)

# รวมเป็นสตริงเดียว
temp = ''.join(str(ele) for ele in my_list)
print("รวมเป็นสตริง:", temp)

# ตัดชุดละ K
my_result = []
for i in range(0, len(temp), K):
    my_result.append(int(temp[i:i+K]))

print("ผลลัพธ์:", my_result)

ผลลัพธ์

ลิสต์: [231, 67, 232, 1, 238, 31, 793]
K = 3
รวมเป็นสตริง: 23167232123831793
ผลลัพธ์: [231, 672, 321, 238, 317, 93]

คำอธิบาย

  1. ''.join(str(ele) for ele in my_list) -> '23167232123831793'
  2. วนลูปทุก K ตัว: index 0,3,6,9,12,15
  3. สไลด์ temp[i:i+K] แปลงเป็น int
  4. ชุดสุดท้ายอาจสั้นกว่า K (93 มี 2 หลัก)

การประยุกต์

  • Encoding/decoding ข้อมูลตัวเลข
  • จัดรูปแบบหมายเลขบัตรประชาชน, เบอร์โทร
  • Chunking ข้อมูลสตรีม