2015-09-10 7 views
5

मैं अजगर पर एक प्रोग्राम बना रहा हूं जिसे सूचियों पर कुछ जानकारी रखने की आवश्यकता है और उन पर गणितीय परिचालन निष्पादित करने की आवश्यकता है। यहां मेरे कोड का नमूना दिया गया है:सूची में तत्वों पर कैसे काम करें?

VCentral = [] 
Atlantico=[] 
Pacifico=[] 
Norte=[] 
Sur=[] 
LVC=0 
LA=0 
LP=0 
LN=0 
LS=0 
LTotal=0 

def RegTemp(regcode): 
    global LVC 
    global LA 
    global LP 
    global LN 
    global LS 
    global LTotal 
    registro=[] 
    temp = int(input("Digite la temperatura: ")) 
    fecha=input("Digite la fecha: ") 
    registro.extend((temp,fecha)) 
    if regcode==1: 
     VCentral.extend(registro) 
     LVC+=1 
     LTotal+=1 
    if regcode==2: 
     Atlantico.extend(registro) 
     LA+=1 
     LTotal+=1 
    if regcode==3: 
     Pacifico.extend(registro) 
     LP+=1 
     LTotal+=1 
    if regcode==4: 
     Norte.extend(registro) 
     LN+=1 
     LTotal+=1 
    if regcode==5: 
     Sur.extend(registro) 
     LS+=1 
     LTotal+=1 

और फिर मुझे इसके मूल्यों की तुलना किसी अन्य चीज़ से करने की आवश्यकता है। यहां समारोह का एक और नमूना मैं लागू करने के लिए कोशिश कर रहा हूँ है:

def Mayor(regcode): 
    if regcode==1: 
     may=0 
     for i in VCentral: 
      if i[0]>may: 
       may=i[0] 
     return may 
    if regcode==2: 
     may=0 
     for i in Atlantico: 
      if i[0]>may: 
       may=i[0] 
     return may 
    if regcode==3: 
     may=0 
     for i in Pacifico: 
      if i[0]>may: 
       may=i[0] 
     return may 
    if regcode==4: 
     may=0 
     for i in Norte: 
      if i[0]>may: 
       may=i[0] 
     return may 
    if regcode==5: 
     may=0 
     for i in Sur: 
      if i[0]>may: 
       may=i[0] 
     return may 

क्या आप मुझे बता सकता है कारण है कि यह मुझ पर एक त्रुटि फेंकता है मैं इसे सराहना करेंगे।

संपादित करें:

Traceback (most recent call last): 
    File "D:/tarea2.py", line 212, in <module> 
    Menu() 
    File "D:/tarea2.py", line 199, in Menu 
    print(EstadisticaZona(regcode)) 
    File "D:/tarea2.py", line 165, in EstadisticaZona 
    print("Temperatura mayor: ",Mayor(2)) 
    File "D:/tarea2.py", line 102, in Mayor 
    if i[0]>may: 
TypeError: 'int' object is not subscriptable 
+0

लेखन त्रुटि आपको बेहतर उत्तर प्राप्त करने में सक्षम बनाता है – DreadfulWeather

+0

फेंकने में क्या त्रुटि है? यदि आपके पास एकाधिक हैं तो आपको elif का उपयोग करना चाहिए। – GiannisIordanou

+0

मैंने त्रुटि जोड़ा –

उत्तर

1

समस्या यह है कि आप array.extend() उपयोग कर रहे हैं जब आप array.append() चाहते हैं। .extend एक पुनरावृत्त लेता है और इसकी सामग्री को अनपैक करता है और सूची के अंत में जोड़ता है। .append एक मान लेता है और इसे अपनी सामग्री को अनपॅक किए बिना सूची के अंत में जोड़ता है। चूंकि आप सूची में एक tuple ((temp,fecha)) जोड़ना चाहते हैं (और ट्यूपल में प्रत्येक आइटम नहीं), तो आपको array.append() का उपयोग करना चाहिए।

संपादित

सभी ही कहा जा रहा है, वहाँ अपने कोड में सुधार के लिए स्थानों की एक बहुत कुछ कर रहे हैं। मैंने आपके द्वारा पोस्ट किए गए सभी कोड को सरल बना दिया और इसे 7 लाइनों तक घटा दिया। (यह अपने कोड के रूप में ही काम करना चाहिए, लेकिन कोई वादा के रूप में मैं अपने पूरे कार्यक्रम नहीं देखा है।):

oceans = [[], [], [], [], []] 

def RegTemp(regcode): 
    temp = int(input("Digite la temperatura: ")) 
    fecha = input("Digite la fecha: ") 
    oceans[regcode-1].append((temp,fecha)) 

def Mayor(regcode): 
    return max(i[0] for i in oceans[regcode-1]) 

गुड लक और खुश कोडिंग!

0

समस्या यह है कि आप विस्तारित कार्य का दुरुपयोग करते हैं। तो जब आप दूसरे फ़ंक्शन में [0] करते हैं, तो यह एक त्रुटि होगी, क्योंकि यह सूची नहीं है बल्कि एक संख्या है।

आपको संलग्न करना और फ़ंक्शन का विस्तार करना चाहिए।

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