私の下のコードがforループ内のn番目の行に新しい値を割り当てない理由を理解できません。私が知る限り、b行列をインデックスする方法は正しいはずですが、カウント変数が各反復ごとに更新されないようです。 printステートメントは、何が起こっているのかを確認する方法としてのみ機能します。forループ内の行に値を代入する
私はそれがかなりシンプルだと思うので、私が間違っていると指摘できたら大変感謝します。私はUbuntuでの端末内のコードを実行するには、次のコマンドを使用し
#!/usr/bin/python
import sys
#from string import maketrans
#import re
import numpy as np
lines = sum(1 for line in sys.stdin)
b = np.zeros((lines,2))
count = 0
for line in sys.stdin:
line = line.strip()
myline = line.split(",")
Depart = myline[3]
DepartDelay = float(myline[6])
if DepartDelay<0:
DepartDelay=0
b[count,0] = Depart
b[count, 1] = DepartDelay
count = count + 1
print(count)
print(b)
print(count)
。
cat sample.txt | mapper.py
このように、データ/テキストファイルは指定されていません。
事前に、ありがとうございます!
は、お返事ありがとうございました! コードをよりスムーズにするために修正を実装します。 これが私の最初の問題を解決する方法を教えてください。 –
確かに、より具体的にする必要があります - 望ましい出力の例を挙げてください。代わりに何を得るのですか?エラーが発生しているか、単に予期しない動作がありますか?解決策が必要な場合の問題の定義 –
[テキストファイルを繰り返し処理する](https://docs.python.org/3/tutorial/inputoutput.html#methods-of-file-objects)ことができます明快さと効率性の両方を奨励しています(readlineはファイル全体をメモリにロードするよう強制します)。覚えておくべき唯一のことは、シーケンスではなく反復可能であることです。巻き戻しまたは再読み込みの機会がない可能性があります。 –