2011-08-11 17 views
6

में सूची संलग्न करें मैं इस कोड को कैसे संशोधित कर सकता हूं ताकि प्रत्येक सूची में 5 तत्वों के साथ 3 सूचियां हो सकें; 5/10/15 तत्वों के साथ 3 सूचियां?लूप प्रश्न

import random 

y = [] 

def autoSolve(): 
    for i in range(5): 
     z = random.randrange(1, 10) 
     y.append(z) 
    print(y, end="") 

for i in range(3): 
    print("number", i + 1,) 
    autoSolve() 
    print() 
+0

तुम क्यों लगता है कि आप तीन सूचियों है 3 भीतरी सूची के साथ उत्पादन उत्पन्न होगा? क्योंकि प्रिंट को तीन बार कहा जाता है? – SingleNegationElimination

+1

क्या यह होमवर्क है? – 6502

+2

यह होमवर्क नहीं है, नहीं। – Sergei

उत्तर

10

autoSolve विधि में ले जाएँ y = [], इतना है कि यह हर कॉल पर रीसेट है।

def autoSolve(): 
    y = [] 
    for i in range(5): 
     z = random.randrange(1, 10) 
     y.append(z) 
    print(y, end="") 
0

autoSolve की शुरुआत करने के लिए y = [] ले जाएँ।

1

आप प्रत्येक बार एक ही सूची y प्रिंट कर रहे हैं।

y खाली से शुरू होता है।

लूप के लिए आपके पहले पुनरावृत्ति, y 5 तत्वों के साथ समाप्त होता है।

दूसरा पुनरावृत्ति, y.append इसे 10 तत्वों में वृद्धि का कारण बनता है।

इसे रोकने के लिए, autoSolve() विधि के अंदर लाइन

y=[] 

डाल दिया।

0
import random 

y = [] 

def autoSolve(): 
    x = [] 
    for i in range(5): 
     z = random.randrange(1, 10) 
     x.append(z) 
    print(x, end="") 
    return x 

for i in range(3): 
    print("number", i + 1,) 
    y.append(autoSolve()) 
    print() 
+0

यह उसके लिए काफी भ्रमित जवाब है यदि वह पायथन में वैश्विक चर को समझ में नहीं आता है। – agf

+0

आप बिल्कुल सही हैं। मैंने चर का नाम बदल दिया। –

-1

मुझे लगता है कि यह इस समस्या के लिए उपयुक्त समाधान होगा।

import random 

y = [] 

def autoSolve(): 
    x = [] 
    for i in range(5): 
     z = random.randrange(1, 10) 
     x.append(z) 
    y.append(x) 
    print(y, end="") 

for i in range(3): 
    print("number", i + 1,) 
    autoSolve() 
    print() 
यहाँ

के रूप में इस [[], [], []] formate एक सूची 5 तत्व