किसी सूची को मोटे तौर पर समान भागों में विभाजित करने का सबसे अच्छा तरीका क्या है ? उदाहरण के लिए, यदि सूची में 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]]