プログラミングに足を突っ込む30女

プログラミング初心者のmemoと日々の歩み

【Python】リストに関する注意点とメモ


新しく知ったこと。(たぶん超初心者用)



リストを複製する際の注意点

リストを通常方法でコピーしたら、別物として扱われず、変更内容もコピーされてしまう。

colors = ["red", "blue", "green"]
colors_copy = colors

colors_copy[0] = "pink"

print( colors_copy )
print( colors )

# 出力結果 ▼
# ["pink", "blue", "green"]
# ["pink", "blue", "green"]


colors_copyしか変更していないのに、
コピー元のcolorsの方も変更されている。

これを、変更が適用されないようにするには、
リストを代入する時にcolors_copy = colors[:]とすれば良い。
[:]を付けると別物として扱ってくれるみたい。

colors = ["red", "blue", "green"]
colors_copy = colors [:]

colors_copy[0] = "pink"

print( colors_copy )
print( colors )

# 出力結果 ▼
# ["pink", "blue", "green"]
# ["red", "blue", "green"]

for文でリストのインデックスも取り出す


今までの私はfor文で何度目のループかカウントしたかった時は全て
ループ内でcnt += 1として、カウント用の変数を作っていた。

だけどもインデックスを取り出せる、
enumerate()関数というものがあったらしい。

インデックス取り出せたらこの変数必要ないね…!!

使い方も簡単だった。

for 変数1, 変数2 in enumerate(リスト名) :


これだけ。
変数1にはインデックス番号(リストの添え字番号)が入り、
変数2には値が入る。

実際の使用例▼

colors = ["red", "blue"]

for index, value in enumerate( colors ) :
    print( index, value )

# 出力結果 ▼
# 0 red
# 1 blue

二次元リストをforで取り出す


二次元っていう考え方が苦手で、辞書に逃げがちなんだけど
他の言語でも開発現場でも二次元リストはよく使われているらしい。

でもPythonの二次元リストはforで回せば取り出すの簡単そう…!
これに慣れてすぐに理解できる癖をつけてから進めると楽かもしれない。


numbers = [ [ 1, 2, 3 ], [ 4, 5, 6 ] ]

for a, b, c in numbers :
    print( a, b, c )

# 出力結果 ▼
# 1 2 3
# 4 5 6