2017-10-18 15 views
0

リスト内の文字列またはそのリストの要素に2つ以上の 'a'が含まれているかどうかを検証するプログラムを作成しようとしています要素を新しいリストに保存する必要はありません。リスト内の文字列要素をダブル 'a'で削除する

ent = input("Ingresa un listado de palabras separados por coma: ") 
lst_1 = ent.split(",") 
lst_2 = [] 

def cuenta(lst_M): 
    tmp = 0 
    for i in range (0,len(element)): 
     print(lst_M[i]) 
     if lst_M[i] == 'a': 
      tmp += 1 
      print(tmp) 
    return tmp  


for element in lst_1: 
    lst_rev = [i for i in element] 
    cuenta(lst_rev) 
    print("Este es el valor de tmp:",tmp) 
    if tmp <= 2: 
     lst_2.append(element) 
    print(lst_2) 

print(lst_2) 

出力は次のようになります:これは、これまでの私のコードであるあなたは、私が「」要素の内部が、のための数を計算する関数を使用して見ることができるように

Ingresa un listado de palabras separados por coma: ana,another,person,ana 
a 
1 
n 
a 
2 
Este es el valor de tmp: 0 
['ana'] 
a 
1 
n 
o 
t 
h 
e 
r 
Este es el valor de tmp: 0 
['ana', 'another'] 
p 
e 
r 
s 
o 
n 
Este es el valor de tmp: 0 
['ana', 'another', 'person'] 
a 
1 
n 
a 
2 
Este es el valor de tmp: 0 
['ana', 'another', 'person', 'ana'] 
['ana', 'another', 'person', 'ana'] 

何らかの理由で、関数の外側にある変数tmpは常に0です。 何が間違っていますか?

+1

'for'ループに' cuenta'メソッドの戻り値を格納する必要があります: 'tmp = cuenta(lst_rev)'。次に、戻り値を確認します。 –

+0

それは完全に働いた、私はあなたの答えを受け入れることができるようにそれをaswerとして置くことができます! – Zombraz

答えて

1

関数呼び出しの結果を変数に代入してみてください。現在、値を返す関数を呼び出していますが、関数呼び出しの範囲外で戻り値を「キャプチャしていません」。

tmp = cuenta(lst_rev) 
print("Este es el valor de tmp:",tmp) 
関連する問題