2016-04-18 13 views
-1

for loopの結果をvariableに保存するにはどうすればよいですか? は、基本的には、印刷は、この例では何をするか:forループ結果を変数に保存する

myList = ['a' ,'b' , 'c' , 'd' , 'e'] 
for i in myList: 
    print i 

結果:

>>> 
a 
b 
c 
d 
e 
>>> 

私は変数にまさにこの印刷結果を保存したいです。

は、今まで私はこのようにそれを解決:

myList = ['a' ,'b' , 'c' , 'd' , 'e'] 
for i in myList: 
    if "a" in i: 
     v1 = i 
    if "b" in i: 
     v2 = i 
    if "c" in i: 
     v3 = i 

allresults = v1+"\n"+v2+"\n"+v3 
print allresults 

しかし、それはすべての時間(JSON)を変更しているので、あなたは、リストの長さがわからない場合、問題がある場合、あなたは得ることはありませんすべての結果。

私はのためのループの結果を格納しようとしています。具体的にはなど

をそこに簡単な方法であることが必要であると、私は他の人から、ここで見つかったすべてに関する情報は、数学などの特定のテーマに関連していました変数には、リストに関する質問ではありません。

+5

これらはすでに変数myListにあります。あなたが達成しようとしていることを理解せずにアドバイスをするのは難しいです。 – RemcoGerlich

+0

あなたの例では 'myList'ではありません、あなたが望む結果ですか?あるいは、この特定のループが何を生成するかを表す文字列を見ていますか?その場合は、\ n ".join(myList)' ...この特定の場合です。私はあなたが尋ねていることをあなたが理解しているとは確信していません.... – SpoonMeiser

+0

"forループの結果"とはどういう意味ですか?すべての 'print'文からの出力の連結? – Chris

答えて

3

提供したコードに基づいて、これらのアイテムごとにいくつかのタイプの変数が必要なようです。だから、これには辞書を使います。

myList = ['a' ,'b' , 'c' , 'd' , 'e'] 

my_dict = {} 

for idx, val in enumerate(myList): 
    my_dict["v{}".format(idx)] = val 

したがって、my_dictを印刷すると、あなたは持っています:

{'v0': 'a', 'v1': 'b', 'v2': 'c', 'v3': 'd', 'v4': 'e'} 

するリストがどのように大きな問題ではない、あなたがそこに作成されます、あなたが必要とするすべてのキーを持つことになりますし、あなただけのそれに応じてそれらを参照することができます。

例:

print(my_dict['v3']) # outputs d 

そして、あなたは、あなたが出力にそれらを見ている方法をすべて自分の価値観を印刷したい場合は、次にあなたがしなければならないすべてはこれです:

.valuesはまさにそれません含意する。辞書の値を取得します。次に、joinメソッドを使用して文字列を作成し、 '\ n'ごとに改行で区切ります。

print('\n'.join(my_dict.values())) 

出力:

a 
b 
c 
d 
e 

最後に、あなたが本当にやりたいすべての出力が「縦」リスト、その後、他のソリューションがここにすなわちprint('\n'.join(myList))

+1

これはまさに私が知りたかったものです。私はすべての項目をdictに転送してからそこ。これにより、すべての項目を出力することができながら、長さを変更することが容易になります。これを受け入れられた答えとしてマークします。どうもありがとうございました。ご自身で説明できないほど申し訳ございません。より具体的には –

2

あなたがそんなことをする理由私は本当に理解していないが、私はあなたがこのような何かをしたいと考えてい:

>>> my_var = '\n'.join(myList) 
>>> my_var 
'a\nb\nc\nd\ne' 
>>> print my_var 
a 
b 
c 
d 
e 
>>> 
2

あなたは出力を保持し、それを印刷した文字列を作成することができます一斉に。

myList = ['a' ,'b' , 'c' , 'd' , 'e'] 
str = "" 
for i in myList: 
    str += i + "\n" 
print str 
+0

これはうまくいきます –

2

あなたであれば、十分であり、もしすべてのリストの値をテキストで区切って貼り付けようとすると、joinメソッドを使用する必要があります。

myList = ['a' ,'b' , 'c' , 'd' , 'e'] 

allresults = "\n".join(myList) 
print allresults 
2

そこにあなたのallresultsのような文字列を作成するには、2つの方法があります。

1)は、文字列の組み込み.join()メソッドを使用します)

allresults = '' 

for c in MyList: 
    if allresults: allresults += '\n' 
    allresults += c 

print allresults 

2、それを拡張し、emptryの文字列で始まります全く同じことをする

allresults = '\n'.join(myList) 
print allresults 

ループ変数を保存する変数にdo28は意味がありません。myListはすでにその変数です。

+0

です!正確に私が必要としたもの。私は受信している特定のタイプのMIME multipartメッセージをデバッグしようとしていますが、これよりも問題を解決するためのより良い解決策はありませんでした。 –

関連する問題