2017-11-29 26 views
1

私の現在のコードは1行目を読んだ後、3,5,7などとしてリストに追加します。2行目からスライスを開始する方法は?

2番目、4番目、6番目の行を読み込み、別のリストに追加します。

with open(path) as f: 
    content = f.readlines() 
content = [x.strip() for x in content[::2]] 
+0

'コンテンツ[1 :: 2]私はそれを受け入れることができるように' –

+1

が親切に答えに追加します。 – Sarah

答えて

0

あなたが最初の項目をスキップしてスライスを開始する必要があります。あなたのコードで

>>> list(i) 
[0, 1, 2, 3, 4, 5, 6, 7, 8] 
>>> list(i[1::2]) 
[1, 3, 5, 7, 9] 

:ここでの例である

content = [x.strip() for x in content[1::2]] 
1

1のスライスに開始値を追加する必要があります。 content[1::2]

with open(path) as f: 
    content = f.readlines() 

content = [x.strip() for x in content[1::2]] 

より良い代替手段は次のように、これを行うためにitertools.islice()を使用することです:

from itertools import islice 

with open(path) as f_input: 
    content = [line.strip() for line in islice(f_input, 1, None, 2)] 
-1

あなたのコードは、スライスが2のステップでリストの最後に1から始まることを意味している ようにする必要があります。

with open(path) as f: 
    content = f.readlines() 

content = [x.strip() for x in content[1::2]] 
from itertools import islice 

with open(path) as f_input: 
    content = [line.strip() for line in islice(f_input, 1, None, 2)] 
関連する問題