เป็นวิธีที่ดีที่สุดในการแบ่งรายการออกเป็นส่วนเท่าๆกันคืออะไร ตัวอย่างเช่นหากรายการมี 7 องค์ประกอบและแบ่งออกเป็น 2 ส่วนเราต้องการรับ 3 องค์ประกอบในส่วนหนึ่งส่วนอื่น ๆ ควรมีองค์ประกอบ 4 รายการ
ฉันกำลังมองหาบางอย่างeven_split(L, n)
ที่แตกL
ออกเป็นn
ส่วน ๆ
def chunks(L, n):
""" Yield successive n-sized chunks from L.
"""
for i in range(0, len(L), n):
yield L[i:i+n]
รหัสข้างต้นให้ชิ้นส่วนจำนวน 3 ชิ้นแทนที่จะเป็น 3 ชิ้น ฉันสามารถแปลง (ทำซ้ำสิ่งนี้และรับองค์ประกอบแรกของแต่ละคอลัมน์เรียกส่วนนั้นจากนั้นนำส่วนที่สองมาใส่ในส่วนที่สอง ฯลฯ ) แต่นั่นเป็นการทำลายการเรียงลำดับของรายการ
>>> chunkIt(range(8), 6)
=>[[0], [1], [2, 3], [4], [5], [6], [7]]