【Python】リストを丸ごと入れ替える

PythonのTopに戻る


 

 n番目以降の要素を全て入れ替える

まず一般的と思われる交換方法を示す。

list1 = [1, 2, 3, 4, 5, 6]
list2 = [7, 8, 9, 10, 11, 12]
n = 2

for i in range(len(list1)):
    if (i>=n):
        list1[i], list2[i] = list2[i], list1[i]

print(list1)
print(list2)
# [1, 2, 9, 10, 11, 12]
# [7, 8, 3, 4, 5, 6]

このコード内の n を3にするとlist1とlist2の4番目以降の要素を入れ替えることができる。

 

 スライス(:)を使った別法

こちらも汎用性のある方法である。スライスを使うと範囲指定が簡単である上にコードも読みやすい。

list1 = [1, 2, 3, 4, 5, 6]
list2 = [7, 8, 9, 10, 11, 12]

i = 0
temp = list1[i:].copy()
list1[i:] = list2[i:]
list2[i:] = temp

print(list1)
print(list2)

PythonのTopに戻る