

初歩の質問で申し訳ありません。  
下記のようなコードで`List1`をfor文で回し、ループ内で`List1`の要素を削除後、  
次のforループで削除された`List1`を使ってループを回したいです。

下記のコードではうまくいきません。  
実行結果、期待したい動作について下記に示します。

わかりませんのでご教授お願いいたします。

[code]

    import copy as cp
    
    List1 = [['a', 'b', 'c'], ['x', 'y', 'z'], ['○', '△', '□']]
    
    save1 = cp.deepcopy(List1)
    for i, row in enumerate(List1):
        print('for文頭：row = ' + str(row))
        if i == 0:
            save2 = []
            for j, s in enumerate(save1):
                if j != 1:
                    save2.append(s)
            print('save2 = ' + str(save2))
        List1 = cp.deepcopy(save2)
    
[/code]

**実行結果**

[code]

    for文頭：row = ['a', 'b', 'c']
    save2 = [['a', 'b', 'c'], ['○', '△', '□']]
    for文頭：row = ['x', 'y', 'z']
    for文頭：row = ['○', '△', '□']
    
[/code]

**期待したい動作**

[code]

    for文頭：row = ['a', 'b', 'c']
    save2 = [['a', 'b', 'c'], ['○', '△', '□']]
    for文頭：row = ['○', '△', '□']
    
[/code]


CC BY-SA 4.0
2022-09-10T05:33:12.983
91023
2022-09-10T05:33:12.983
30173
question
python python3
for文で回しているリストをループ内で要素を削除してもリストが更新されない