2010-07-28 10 views
5

मैंने Python: Slicing a list into n nearly-equal-length partitions प्रश्न के उत्तर पढ़े हैं।पायथन - यादृच्छिक रूप से लगभग बराबर भागों में एक सूची को विभाजित करें

यह accepted answer है:

def partition(lst, n): 
    division = len(lst)/float(n) 
    return [ lst[int(round(division * i)): int(round(division * (i + 1)))] for i in xrange(n) ] 

मैं सोच रहा हूँ, कैसे एक के रूप में वृद्धिशील काम करने के लिए विरोध के क्रम बेतरतीब ढंग से एक विभाजन करने के लिए आइटम आवंटित करने के लिए में इन समाधानों को संशोधित करता है।

धन्यवाद, एस :-)

+0

विभाजन तारों की विधि भी है, इसलिए आपको नामकरण पर पुनर्विचार करना चाहिए। इसके अलावा मैं मार्क डिकिंसन द्वारा फ्लोटलेस दूसरे उत्तर का उपयोग करूंगा। –

उत्तर

1

शफल इनपुट सूची।

+0

यह बिल्कुल समझ में आता है। मुझे वास्तव में यह पता लगाना चाहिए था। हां, 10,000 घंटे का नियम शायद सच है :-( –

0

सबसे पहले आप सूची को यादृच्छिक बनाते हैं और फिर आप इसे लगभग बराबर भागों में विभाजित करते हैं।

संबंधित मुद्दे