python简单的问题,智商不够用了。。。
PHPz
PHPz 2017-04-18 10:26:17
0
2
493

为何遍历a只遍历3次?智商不够了,list里最后一个为何没遍历到?智商不够了。。。

a = ["asd_1","asd_2","3","4"]
b = a

for i in a:
    print(i)
    if i.find('asd_') < 0:
        b.remove(i)

输出:
asd_1
asd_2
3

PHPz
PHPz

学习是最好的投资!

全員に返信(2)
Peter_Zhu

リスト内の変更可能なオブジェクトのため、a と b は実際には同じアドレスのみを必要とします。b での削除は a の反復に影響します。信じられない場合は、a を出力して確認してください。 リーリー

出力:

リーリー

この時点でaの長さは3になりました

いいねを押す +0
黄舟

上記のコードでは、b は単なる a への参照です。b を変更すると、a も変更され、a の反復に直接影響します。

お試しいただけます

リーリー

または

リーリー

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート