2016-06-14 13 views
-1

以下のような特定の条件に従ってタプルを繰り返したいとします。 私は変数L = []を定義しました。私はタプルにインポートされたいくつかの関数を持っています。この条件を満たすと、タプルを反復しながら、この条件を満たす関数が答えを出力します。私はこのコードを試しましたが、正しい方法を得ることができませんでした。プロのパイソン達人ではないと私は批評家を歓迎する。特定の条件に従ったタプル関数を反復する方法

L = [] 
def one():  
    L = 1*2  
    print '1 yea!' 
    return L 

def two(): 
    L = 1+2  
    print '2 yea!' 
    return L 

def three(): 
    L = 1/2  
    print ' 3 yea!' 
    return L 

def four(): 
    L = 1-2  
    print '4 yea!' 
    return L 

refined = (one, two, three, four) 

def these(): 
    for x in refined: 
     b1 = iter(refined) 
     if L ==2: 
      return b1 
     else: 
      print 'nothing here' 
+0

を明確にしてください。あなたが見たいと思う正確な出力は何ですか? – Kevin

+2

'b1 = iter(refined)'のポイントは正確です.1。あなたは既に 'refined'を繰り返しています。2.あなたは決して' b1'を使っていませんか?あなたが期待していたことはまったく明らかではありません。 – jonrsharpe

+0

が編集されました。 L == 2の条件を満たす場合、例えば、 def one()によって、出力される唯一の文字列は '1 yea!'です。すべての文字列ではありません – wakamdr

答えて

0

[OK]を、

def one():  
    L = 1*2  
    print '1 yea!' 
    return L 

def two(): 
    L = 1+2  
    print '2 yea!' 
    return L 

def three(): 
    L = 1/2  
    print ' 3 yea!' 
    return L 

def four(): 
    L = 1-2  
    print '4 yea!' 
    return L 

refined = (one, two, three, four) 

def these(refined, L): 
    return refined[L] 

for L in range(4): 
    print these(refined, L)() 

EDIT:1つの特定の値について:

print these(refined, 2)() 

を実行し、それはしてます:

$ python refined.py 
1 yea! 
2 
2 yea! 
3 
3 yea! 
0 
4 yea! 
-1 
+0

イテレータの使い方と混同しています。私のコードでは、これらの()はタプルとインデックスを取り、そのインデックスの値を返します。これは関数なので、下のテストループでは、実際に関数を呼び出すためにadd()を追加します。 –

+0

お返事ありがとうございます。私は、L == 2のような条件を満たす文字列を1つだけ印刷したいと思っています。私はどのようにこれで動作します。敬具! – wakamdr

+0

私は1つだけの機能を選択するために私の答えの一番下に追加しました –

関連する問題