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

为何遍历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

学习是最好的投资!

membalas semua(2)
Peter_Zhu

Oleh sebab objek boleh ubah dalam senarai, a dan b sebenarnya hanya mahukan alamat yang sama pada b akan menjejaskan lelaran a Jika anda tidak percaya saya, cetak a dan lihat

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

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

Output:

asd_1
asd_2
3
['asd_1', 'asd_2', '4']

Pada masa ini panjang a telah menjadi 3

黄舟

Dalam kod di atas, b hanyalah rujukan kepada a. Jika anda mengubah suai b, a juga akan diubah suai, yang secara langsung mempengaruhi lelaran a.

Anda boleh mencubanya

b = a.copy()

atau

b = a[:]
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan