편집 기록

편집 기록
  • 프로필 엽토군님의 편집
    날짜2022.10.03

    파이썬 리스트 질문 있습니다!


    import random
    data=[random.randint(1,3) for i in range(10)]
    print(data)
    target=2
    
    print(f'target({target}) 삭제 전:{data}')
    for n in data:  
        if n==target:
            data.remove(target) 
    print(f'target({target}) 삭제 후:{data}')
    

    이 코드에서 질문이 있습니다.

    일단 리스트에 [2 2 1 3 2 3 1 2 2 2]가 있는데
    for0번째 위치에서 실행되니까 첫 번째 2가 지워지고 data = [2 1 3 2 3 1 2 2 2]로 정의됩니다.
    그러면 다시 for loop로 돌아왔을 때 이제는 1번째 위치에서 실행하니까 인덱스 1에 있는 요소인 1이 지워지고 data = [2 3 2 3 1 2 2 2] 되는 거 아닌가요?
    왜 실행 결과가 [1, 3, 3, 1, 2, 2]인지 이해가 잘 되지 않습니다.

  • 프로필 18063@hafs.hs.kr님의 편집
    날짜2022.10.03

    파이썬 리스트 질문 있습니다!


    `import random
    data=[random.randint(1,3) for i in range(10)]
    print(data)
    target=2
    
    print(f'target({target}) 삭제 전:{data}')
    for n in data:  
        if n==target:
            data.remove(target) 
    print(f'target({target}) 삭제 후:{data}')
    

    `

    이 코드에서 질문이 있습니다. 일단 리스트에 [2 2 1 3 2 3 1 2 2 2]가 있는데 for 가 0번째 위치에서 실행되니까 첫 번째 2가 지워지고 data는 [2 1 3 2 3 1 2 2 2]로 정의됩니다. 그러면 다시 for loop로 돌아왔을 때 이제는 1번째 위치에서 실행하니까 인덱스 1에 있는 요소인 1이 지워지고 data는 [2 3 2 3 1 2 2 2] 되는 거 아닌가요? 왜 실행 결과가 [1, 3, 3, 1, 2, 2]인지 이해가 잘 되지 않습니다.