1

だから、これはかなり簡単なはずだと思います。そのようなテキストファイルがあるとします。

football
baseball
basketball
soccer

そして、例えばそのようなリスト

colors=["orange","white"]

Pythonでそれらを一緒に反復処理する方法を理解しています

for i,j in zip(file, colors)

しかし、ファイルを3行目から開始するように指示する簡単な方法はありますか?

basketball orange
soccer white

2 つのリストでこれを行う方法は理解していますが、ファイルをさらに下に開始するように指示する方法がわかりません。いつもありがとう、私はまだここに来たばかりで、みんながいつも大きな助けになってくれます!

4

5 に答える 5

2

私はするだろう

next(file) # get and discard
next(file)
for i,j in zip(file, colors):
    # do stuff

そしてzip操作。

2 つ以上または可変数の場合:

for _ in range(number_to_skip):
    next(file)
for i, j in zip(file, colors):
    # do stuff

これは、ファイルが反復可能であるだけでなく、独自の反復子であるため機能します。したがって、別の反復子オブジェクトを使用するのではなく、独自に値を提供します (list他の人が行うように)。

それぞれnext(file)がファイルから行を取得し、次に進みます。「本当の」イテレーションに到達すると、目的の場所に到達します。

于 2012-12-04T05:48:07.393 に答える
2

ファイルをリストに変換せずに反復可能な状態に保つ方法は、 itertools を使用して実現できます。

import itertools

for i, j in itertools.izip(itertools.islice(file, 2, None), colors)

islice、ファイルをリストに変換せずに 2 行スキップし、反復可能な状態に保ちます。

izipzipまた、イテラブルを保持する代わりに、リストに変換する可能性があるため、これも重要です。

于 2012-12-04T05:54:20.993 に答える
1

read 2 line and don't perform any action

file.readline()
file.readline()

then use normal zip

for i,j in zip(file, colors):
    # perform action
于 2012-12-04T05:50:02.680 に答える
0

あなたができるfor i,j in zip(file[2:],colors)

于 2012-12-04T05:47:11.747 に答える
0

それが収まる場合は、 readlines を使用して行のリストを取得します..

lines = my_file.readlines()
zip(colors,lines[3:])
于 2012-12-04T05:47:17.927 に答える