0

私はPythonのいわゆる初心者です。リストに問題があります。テキストファイルから情報を取得して関数を通過するループがあります。テキストファイルの長さが10行の場合、出力は次のように10個の個別のリストになります: [0.45] [0.87] ...など、n + 1回(テキストファイルの長さによって異なります)。

[0.45、0.87、...]のように、それらを単一のリストに入れるにはどうすればよいですか? さまざまなループを試しましたが、何もありません:(

私は以前に感謝しています:) ..そして私の下手な英語についてsry

コード:

from pyfann import libfann
import os
path="."
ext = ".net"
files = [file for file in os.listdir(path) if file.lower().endswith(ext)]
for j in files:
 ann = libfann.neural_net()
 ann.create_from_file(j)
 print j
 f=open('nsltest1.dat','r')
 for i in f:
  x=i.strip()
  y=[float(i) for i in x.split()]
  z=ann.run(y)
  print z    
4

4 に答える 4

9

すべてのリストをリストに保存している場合はa

# a = [[.45], [.87], ...]
import itertools
output = list(itertools.chain(*a))

forこの答えが他の答えよりも優れているのは、ループなどを必要とせずに、任意の数のリストを1行にきちんと結合することです。

于 2012-11-20T20:41:32.707 に答える
4

加算演算子+はあなたが望むかもしれないものです。

list1 = [1, 2, 3]
list2 = [4, 5, 6]
merged_list = list1 + list2
print(merged_list) #replace ( and ) with spaces if you're using python 2.x    

出力します[1, 2, 3, 4, 5, 6]

于 2012-11-20T20:40:48.130 に答える
4

次の質問をご覧になることをお勧めします。

基本的に、ループで行を読んでいる場合は、次のようにすることができます

result = []
for line in file:
    newlist = some_function(line) # newlist contains the result list for the current line
    result = result + newlist
于 2012-11-20T20:44:07.630 に答える
2

それらを追加するだけです: [1] + [2] = [1, 2].

于 2012-11-20T20:40:45.123 に答える