Python リストから連続要素を二つずつ取り出す

'22/01/11更新
  本記事では、リストから連続する要素を2つずつ順番に取り出す方法の雛形コードを載せました。次のリストを例に3つ示します。

x1_list = [45, 125, 312 ,497, 623, 1015] # 6つの要素

■方法1. iter()とnext()を利用して、二つずつ取り出す

f:id:HK29:20210608211047p:plain

# iter()とnext()を利用して、2つずつ取り出す'
it = iter(x1_list)
while True:
    try:
        print(next(it), next(it))
    except StopIteration:
        break

 

■方法2. zip()を利用して、二つずつ取り出す

f:id:HK29:20210608211047p:plain

# zip()を利用して、二つずつ取り出す'
it = iter(x1_list)
for i, j in zip(it, it):
    print(i, j)

 

■方法3. 二つずつをひとつずらしつつ取り出す

f:id:HK29:20210608211540p:plain

# まず、リスト内要素をひとつずらした新規リストを2つ作成する
n = 1
x2_list = x1_list[n:] + x1_list[:n] # 要素のインデックスをひとつずらす
print(x2_list) # リストの先頭にあった要素が一番最後に移る
x1_list.pop() # リストの末尾の要素を削除
x2_list.pop()
print(x1_list, x2_list) # ひとつずれたリストが二つできる

f:id:HK29:20210608211330p:plain

# 上記二つのリストを用いて、2つずつをひとつずらしずつ取り出す 
range_list = []
for x1, x2 in zip(x1_list, x2_list):
    range_list.append([x1, x2])
print(len(range_list), range_list)

以上

<広告>