2016-11-01 5 views
0

처음으로 건너 뛰기 을 건너 뛰고 싶습니다. 내가 바보. 코드 골프 한 번만 한 문장으로 한 줄 건너 뛰기

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 tyelaney

답변

2

당신은 articles은이 있는지 확인 수 : 당신이 항목을 반복하고이를 계산하려면

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

thx! 하지만 모르겠다. [1 ::] –

+0

bert import itertools; D –

+1

'기사'에 따라 itertools가 필요하지 않을 수도있다. 당신은''기사에서 [:] : ... '을 시도해보고 무슨 일이 일어나는 지 볼 수 있습니다. – tdelaney

2

"열거 형"으로 "집필"을 감쌀 수 있으며 이는 색인 (증가 순서)을 반환합니다.

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

xx! 하지만 모르겠다, 인쇄 (a) –

3

에서, enumerate() 기능을 사용 : 인덱스가 0 인 경우는 전화를 "계속"할 수 있습니다 반복기를 사용하고 next을 사용하여 삭제하십시오.

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

예! 쉽고 간단합니다. –