2016-08-28 20 views
0

ループの結果をvaribaleに保存しました。今私は複数の(> 500)別々のリストを持っています。どちらが初めは大丈夫だったのですが、今度はそのリストを使ってもう一度やりたいと思います。誰かが複数のリストから1つのリストを作成する方法を知っていますか?複数のリストからリストを作成

私がこれまでしているコード:

for f in file: 
#do some stuff 
    my_results =[] 
    if score >= 0: 
    my_result.append(str(score)) 
    print my_result 

だからmy_resultの結果が次のようになります。

['3'] 
['8'] 
['6'] 
... 

しかし、私は彼らが同じようになりたい:私が試した

[['3'], ['8'], ['6'],...] 

それはこうです:

one_list = [] 
for item in my_result: 
    one_list.append(item) 

しかし、残念ながら、それは動作しませんでした! どのようにこれらのリストを1つのリストにまとめることができるのでしょうか?

ありがとうございました! :)

+0

データの簡単な例を掲載できますか?後で*再加工するのではなく、必要な方法でリストを作成する方がよいでしょう。 – wwii

答えて

1

ループ内に初期化部分を配置したので、すべての繰り返しでmy_resultを作成しています。ループの外側に配置すると、初期化されるのは1回だけになります。

my_results =[] 
for f in file: 
    #do some stuff 
    if score >= 0: 
     my_results.append(str(score)) 
print my_result 
+0

さて、ありがとう!私はそれをあなたが示唆した通りに行いました。そして、my_resultsは今のようになりました: – Rimisak

+0

これは未定義の名前 'my_result'に追加しているように' NameError'を与えます。あなたは 'my_result * s *'を初期化しました。 – Dartmouth

+0

私はまだ私が探している結果を得ていませんでした。私が1つのbgリストを必要とした理由は、作成されたすべてのリストの数を取得することです。どのように多くの結果がforループを通過するのかを数えることは可能でしょうか? – Rimisak

1

あなたは正しい軌道に乗っているが、あなたは、ループでは約混乱しているようです。これは、あなたが欲しいものを行う必要があります。

my_result = [] 
for f in file: 
    #do some stuff here 
    if score >= 0: 
     my_result.append(str(score)) 
print my_result 

あなたの現在のコードの問題は、あなたがそれによって、すべての以前のエントリを削除、ファイル内のすべての項目のために空のリスト[]my_resultを設定しておくことです。

ちなみに、コードスニペットには他の回答と同様にタイプミスがあります。 my_resultmy_resultsは2つの異なるリストですので、1つのリストに割り当てたいのに実際は完全に異なるものに割り当てるため、コードは機能しません。

1

forループの中で何かをやっていないなら、リストの理解を使うことができます。

my_result = [str(score) for score in file if score >= 0] 
関連する問題