2013-04-08 6 views
8

मेरे पास एकाधिक पूर्णांक और तारों की सूची है ['-200', '0', '200', '400', 'हरा', '0', '0', '200', '400', ' पीला ',' 200 ',' 0 ',' 200 ',' 400 ',' लाल '] मुझे प्रत्येक 5 तत्वों को सूची को अलग करने में कठिनाई हो रही है और अंदर केवल 5 तत्वों के साथ एक नई सूची बनाना है। हालांकि, मुझे 3 अलग-अलग सूचियां नहीं चाहिए, मैं सिर्फ एक चाहता हूं जो हर बार एक नया 5 तत्व बदलता है।आप प्रत्येक एक्स तत्वों की सूची कैसे विभाजित कर सकते हैं और उन एक्स मात्रा तत्वों को एक नई सूची में जोड़ सकते हैं?

उत्तर

19

आप की तरह कुछ हैं:

composite_list = [my_list[x:x+5] for x in range(0, len(my_list),5)] 

print (composite_list) 

आउटपुट:

[['-200', ' 0', ' 200', ' 400', ' green'], ['0', '0', '200', '400', ' yellow'], ['200', '0', '200', '400', ' red']] 

क्या आप एक 'नई' 5 तत्वों से मतलब है?

आप इस सूची में जोड़ने के लिए चाहते हैं, तो आप कर सकते हैं:

composite_list.append(['200', '200', '200', '400', 'bluellow']) 
1

आप की तरह

>>> import math 
>>> s = ['-200', ' 0', ' 200', ' 400', ' green', '0', '0', '200', '400', ' yellow', '200', '0', '200', '400', ' red'] 
>>> [s[5*i:5*i+5] for i in range(0,math.ceil(len(s)/5))] 

एक भी वाक्य में यह कर सकता है तो फिर उत्पादन किया जाना चाहिए:

[['-200', ' 0', ' 200', ' 400', ' green'], ['0', '0', '200', '400', ' yellow'], ['200', '0', '200', '400', ' red']] 
+0

क्षमा करें ~ गलत। इसे तुरंत अपडेट करेंगे। – Sheng

0

मुझे लगता है कि आपको 1 नई सूची बनाना होगा, लेकिन अगर मैं सही ढंग से समझता हूं, तो आप प्रत्येक में 5 तत्वों के साथ घोंसला वाली सूची चाहते हैं sublist।

आप निम्न की कोशिश कर सकते:

l = ['-200', ' 0', ' 200', ' 400', ' green', '0', '0', '200', '400', ' yellow', '200', '0', '200', '400', ' red'] 

new = [] 
for i in range(0, len(l), 5): 
    new.append(l[i : i+5]) 

इस नए में एक sublist में 5 तत्वों को एक साथ आपकी पहली सूची, 'l', और समूह के माध्यम से कदम होगा। आउटपुट:

[['-200', ' 0', ' 200', ' 400', ' green'], ['0', '0', '200', '400', ' yellow'], ['200', '0', '200', '400', ' red']] 

आशा इस मदद करता है

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

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