1

テキスト ファイルの列に沿ってスクリプトを反復処理したいのですが、最初の 5 列は無視します。

現在、私のスクリプトは、列 6 の値を評価する行ごとにテキスト ファイルの行を実行します。次に、列 6、列 7、列 8 などを評価するすべての行を実行したいと思います。各列を評価したくありません。スクリプトがファイルを読み取るときはすべての行ですが、ファイル全体を実行して列 n を評価し、列 n + 1 に対して繰り返します。

現在、私は簡単です:

for line in Input:
    line = line.rstrip() 
    fields = line.split("\t")
    for col in row:

ただし、最初の 5 列はターゲットではないため、無視するように指定したいと思います (ただし、ファイル内の情報としてはまだ必要です)。

for col in row for range 6:20 のようなものがうまくいくと思いますが、私はPythonの初心者で、これをPythonで表現する正しい方法がわかりません。あまりにも紛らわしい場合は、質問を明確にする方法を教えてください。

よろしくお願いいたします。

一番、

ルバル

4

3 に答える 3

5

list がある場合row、要素番号でrow[a:b]始まり、要素番号aを含まない要素の範囲ですb

例えば:

row = ['alpha', 'beta', 'gamma', 'delta', 'epsilon']

print row[2:4]

これの出力は次のようになります

['gamma', 'delta']

したがって、ループで次のように記述できます。

for col in row[6:20]:
    foo()

または、リストの最後までループします

for col in row[6:]:
    foo()
于 2012-06-03T12:36:18.313 に答える
4
for line in Input:
    line = line.rstrip() 
    fields = line.split("\t")
    for col in fields[5:]:
        # process
于 2012-06-03T12:33:17.923 に答える
2

コピーせずに

for line in Input:
    line = line.rstrip() 
    fields = line.split("\t")
    for index in range(5, len(fields)):
        #do_smth with fields[index]
于 2012-06-03T12:32:42.160 に答える