2016-07-19 11 views
-1

私は、後続の操作のためにforループの各反復出力を書き込もうとしています。 がここに私のコードforループの出力をPythonで書く

#!/usr/bin/python 

import io 
from operator import itemgetter 
with open('test.in') as f: 
    content = f.readlines() 
    content = [int(x) for x in content] 
    content = tuple(content) 
    nClus = input("Number of Clusters: ") 
    nEig = input("Number of eigen values: ") 
    j = 0 
    k = nClus + 1 
    content1 = "" 
    for i in range(1,k): 
     print content[j*(nEig+1):i*(nEig+1)] 
     j = j + 1 

ファイルtest.inは次のように見えるである(一例である、実際のtest.inは、大量のデータが含まれている)

40 
1 
4 
3 
5 
7 
29 
6 
9 
4 
7 
3 
50 
1 
2 
3 
4 
5 
57 
9 
8 
7 
6 
5 

値nClus = 4、nEig = 5 どのように進めるべきですか?

+0

forループの中に 'print'文があるので、出力を書いても問題ありません。あなたが望むことをやっていないのですか?それは何をしているのですか?何をしたいのですか? – Kevin

+0

ヒント: 'content = f.readlines()'であなたのメモリを食べるのではなく 'for line in f'' –

+0

@Kevinそれぞれの出力を変数に保存したいので、必要に応じて誰かに呼び出すことができます私のさらなる操作 – ratamboli

答えて

0

なぜそれらをアレイに保存しないのですか(mydata)? jがどこに止まっているのかわかりません(other_dimension、結果の次元が1つしかない場合は、配列のサイズがわかりません)、データを保存するためにこの形式に従うことができますto:

import numpy as np 
... [your code] 
    mydata = np.zeros([k,other_dimension]) // other_dimension only if you are saving a rectangular matrix of results instead of a vector 
    for i in range(1,k): 
     mydata[row, column] = content[j*(nEig+1):i*(nEig+1)] // put your iterators here for row, column if applicable (rectangular matrix), otherwise mydata[iterator] 
     print mydata[k, other_dimension] // other_dimension only if you are saving a rectangular matrix of results instead of a vector 
     j = j + 1 
関連する問題