0

指定されたテキスト ファイルから数値を読み取り (空白行と数値以外の行を無視して)、それぞれが独自の行にあり、それぞれを個別のエントリとしてリストに書き込むプログラムを作成しています。基本的に、関数はコンテンツをリストに追加するだけでなく、リストをコンテンツと同期します。

私が試したいくつかのこと:

y = []
#x is textfile, y is list variable
def parse_file(x,y):
    with open(x, 'r') as f:
        for line in f:
            if (line.strip()).isdigit():
                y = [int(line.strip())]

parse_file('text.txt',y)

と:

y = []
#x is textfile, y is list variable
def parse_file(x,y):
    z = []
    with open(x, 'r') as f:
        for line in f:
            if (line.strip()).isdigit():
                z.append(int(line))
    y = z
    print(z)

parse_file('text.txt',y)

どちらもy空のままになります。ここで何が間違っていますか?

4

1 に答える 1

1

y空のままの理由は、グローバル スコープではなくローカルスコープで変更しているためです。とにかく空のリストとして始めるのでy、実際に何かを含むときにそれを定義するのはどうですか? これが実際の例です:

def parse_file(x):
    y = []
    with open(x, 'r') as f:
        for line in f:
            if (line.strip()).isdigit():
                y.append(int(line.strip()))
    return y

y = parse_file(x)
于 2013-07-26T07:10:35.060 に答える