2017-12-19 20 views
0

リストを反復したいが、最初と2番目の要素だけを反復したい。エッジケースの場合、リストに要素が1つのみまたはゼロの場合は、1回または0回の繰り返しを実行する必要があります。最初と2番目のリストのpythonを繰り返す

for element in a_list: 
    print(element) 

ユースケース

  • a_list = [] -> ''
  • a_list = ['a'] -> 'a'
  • a_list = ['a', 'b'] -> 'ab'
  • a_list = ['a', 'b', 'c'] -> 'ab'
  • a_list = ['a', 'b', 'c', 'd'] -> 'ab'
+5

[Pythonのスライス表記を理解する](https://stackoverflow.com/questions/509211/understanding-pythons-slice-notation) – soon

答えて

3
for element in a_list[:2]: 
    print(element) 
+0

良いの可能性のある重複。シンプルで効果的な –

1

あなたが出力したい場合は2つの要素が、その後使用: -

for element in a_list[:2]: 
    print(element) 

あなただけの質問での使用で説明した文字列のような出力2の要素にしたい場合: -

使用
"".join(a_list[:2]) 
0

Python 3 print()関数を使用すると、明示的な反復を避けて1つのステートメントで出力を得ることができます。

>>> a_list = ['a', 'b', 'c', 'd'] 
>>> print(*a_list[:2], sep='') 
ab 
>>> a_list.pop() 
>>> print(*a_list[:2], sep='') 
ab 
>>> a_list.pop() 
>>> print(*a_list[:2], sep='') 
ab 
>>> a_list.pop() 
>>> print(*a_list[:2], sep='') 
a 
>>> a_list.pop() 
>>> print(*a_list[:2], sep='') 

このスライスはa_listで、スライスの要素をアンパックし、空の文字列をセパレータとして出力します。

あなたはあなたのスクリプトの先頭にこれを追加することによって、Pythonの2で同じ機能を使用することができます。

from __future__ import print_function 
0

あなたが最初の2つの要素を生成する機能を作成することができます。使用に

def yield_two(iterable): 
    it = iter(iterable) 
    yield next(it) 
    yield next(it) 

for e in yield_two('abcde'): 
    print(e) # 'a', 'b' 
関連する問題