2016-11-01 8 views
0

私は最初にスキップする をスキップしたいと思います。私は愚かだ。コードゴルフ楽しい1回限りのステートメントのための1行スキップ

count = 0 
for a in articles: 
    if count == 0: 
     count += 1 
     continue 
    data = a.b.c() 
    etc = a.abcde(E) 
    # ~~~~.......... 

完了コード

for c,l in enumerate(BeautifulSoup(requests.get(NS_URL, timeout=3).text, 'lxml').find_all('li')):  
    if c == 0: continue 
    link = l.a.get('href') 
    title = l.h1.a.text 
    img = l.img.get('src') 

新しいコード

for l in BeautifulSoup(requests.get(NS_URL, timeout=3).text, 'lxml').find_all('li'))[1:]: 
    link = l.a.get('href') 
    title = l.h1.a.text 
    img = l.img.get('src') 

私が記事を使用し、[1:]。 thx tdelaney

答えて

2

あなたはarticlesがあることを確認できました反復子を使用してnextを使用して1つを破棄します。

i_articles = iter(articles) 
next(i_articles) 
for a in i_articles: 
    data = a.b.c() 

またはずっとsomelist[1::]のようなシーケンスをスライスするitertoolsを使用しています。

for a in itertools.islice(articles, 1, None, 1): 
    data = a.b.c.() 
+0

thx!しかし、私は知りません、[1 ::] –

+0

バットインポートitertools; D –

+1

あなたは '記事'に応じて 'itertools'を必要としないかもしれません。あなたは記事記事[1:]のために試してみてはどうでしょうか。 – tdelaney

2

「記事」に「列挙」をラップすると、インデックスも返されます(シーケンスが増加します)。あなたは、インデックスが0であれば、「続ける」を呼び出すことができます。

articles = ['one', 'two', 'three'] 
for i, a in enumerate(articles): 
    if not i: continue 
    # do something with a 
    print(a) 
+0

thx!しかし私は知らない、印刷する(a) –

3

あなたがアイテムを反復処理し、それらを数え、enumerate()機能を使用する場合:

for count, a in enumerate(articles): 
    if count == 0: 
     continue 
    # now do whatever 
+0

はい!簡単でシンプル。 –

関連する問題