찾다

 >  Q&A  >  본문

python简单的问题,智商不够用了。。。

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

PHPzPHPz2786일 전499

모든 응답(2)나는 대답할 것이다

  • 天蓬老师

    天蓬老师2017-04-18 10:28:17

    목록의 변경 가능한 개체로 인해 a와 b는 실제로 동일한 주소만 원합니다. b에서 제거하면 a의 반복에 영향을 줍니다.

    으아악

    출력:

    으아악

    이때 a의 길이가 3이 되었습니다

    회신하다
    0
  • 黄舟

    黄舟2017-04-18 10:28:17

    위 코드에서 b는 a에 대한 참조일 뿐입니다. b를 수정하면 a도 수정되어 a의 반복에 직접적인 영향을 미칩니다.

    시도해 보세요

    으아악

    또는

    으아악

    회신하다
    0
  • 취소회신하다