2015-09-10 6 views
5

私はリスト上の情報を保持する必要があるpython上でプログラムを作っており、それらのプログラム上で数学演算を実行します。ここに私のコードのサンプルがあります:リストの要素を操作する方法は?

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 

それは私にエラーをスローし、なぜあなたは私に言うことができれば、私はそれをお願い申し上げます。

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 
+0

書き込みエラーにより、より良い回答が得られます – DreadfulWeather

+0

どのようなエラーが発生しますか?複数のifがある場合はelifを使うべきです。 – GiannisIordanou

+0

エラーを追加しました –

答えて

1

問題は、あなたがarray.append()をしたいときにarray.extend()を使用していることです。 .extendはiterableを取り、その内容を展開し、それをリストの最後に追加します。 .appendは値を取り、その内容を展開せずにリストの末尾に追加します。タプル((temp,fecha))をリストに追加する(タプルの各項目ではない)ので、array.append()を使用する必要があります。

EDIT

はすべてのことが言われて、あなたのコードの改善のための多くの場所があります。あなたが投稿したすべてのコードを単純化し、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

問題は、拡張機能を誤って使用していることです。したがって、2番目の関数でi [0]を実行すると、リストではなく数字であるため、エラーになります。

追加機能と拡張機能を確認する必要があります。

関連する問題