I'm making a program on python that needs to hold some info on lists and them execute mathematical operations on them. Here's a sample of my code:
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
And then I need to compare it's values to something else. here's another sample of the function I'm trying to implement:
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
If you could tell me why it throws an error at me I would appreciate it.
EDIT:
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
The problem is that you are using array.extend()
when you want array.append()
. .extend
takes an iterable and unpacks its contents and adds that to end of the list. .append
takes a value and adds it to the end of the list without unpacking its contents. Since you want to add a tuple ((temp,fecha)
) to the list (and not each item in the tuple), you should use array.append()
.
EDIT
All that being said, there are a lot of places for improvement in your code. I simplified all the code you posted quite a bit and got it down to 7 lines. (It should work the same as your code, but no promises as I haven't seen your whole program.):
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])
Good luck and happy coding!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With