2016-04-12 5 views
0

私はグラフとしてプロットできるように、私の関数の出力をリストにプロットしようとしています。私のコードは、これまで私が手出力が出力をリストに変換するにはどうすればよいですか?

1 
2 
6 
24 
120 
720 
5040 
40320 
362880 
3628800 

ですが、私が欲しいの出力は、私はこれを取得するために追加する必要がありますどのようなコード

[1, 2, 6, 24, 120, 720, 5040, 40320, 362880, 3628800] 

ある?

t = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 

def anninos(): 
    for time in t: 
     tfac = math.factorial(time) 
     print(tfac) 
anninos() 

ですか

答えて

3

あなたはリストを構築するためにlist comprehensionまたはmap()を使用することができます。

>>> import math 
>>> t = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 
>>> [math.factorial(time) for time in t] 
[1, 2, 6, 24, 120, 720, 5040, 40320, 362880, 3628800] 
>>> list(map(math.factorial, t)) 
[1, 2, 6, 24, 120, 720, 5040, 40320, 362880, 3628800] 

次に、あなたの関数からリストを返すか、それを印刷できます。

+0

代わりに 'return [math.factorial(time)in time in]'を使うのはどうですか?それ以来、OPも後でリストを使いたいと思う。 –

+0

@ケビン:それはより機能的なものになるでしょう。 –

+0

ああ、私はこの方が良いと思う。 –

1

printの代わりにyieldを使用し、anninos()の代わりにprint(list(anninos()))を使用できます。また、それにリストを作成し、追加することもできます

def anninos(): 
    print([math.factorial(time) for time in t]) 
0
t = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 

def anninos(): 
    out = [] 
    for time in t: 
     tfac = math.factorial(time) 
     out.append(tfac) 
    print(out) 
anninos() 
1

あなた:あなただけの同じもののリストを作成するループがあるとき

def anninos(): 
    result = [] 
    for time in t: 
     result.append(math.factorial(time)) 
    print(result) 

は、あなたがlist comprehension使用することができます利回りを必要とするか、機能を使用しない。あなたは関数からの戻り値を使用しない - なぜ関数を使うのですか?:

import math 

t = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 

def anninos(values_list): 
    for time in values_list: 
     yield math.factorial(time) 

print list(anninos(t)) 
関連する問題