본문 바로가기

Python

[Python] for문 사용해서 list 원소 값 변경하는 방법

가능

def solution(s, n): 
    s = ["A", "b", "C", "d"] 
    for i in range(len(s)): 
        if s[i].isupper(): 
            s[i]= s[i].lower() 
    print(s)
    # ["a", "b", "c", "d"]

불가능

def solution(s, n): 
    s = ["A", "b", "C", "d"] 
    for c in range(s): 
        if c.isupper(): 
            c = c.lower() 
    print(s)
    # ["A", "b", "C", "d"]

for문을 이용해서 c s의 원소를 하나씩 복사해 넣는다.

즉, 주소(객체)가 전달된 것이 아니고 값만이 복사되어 전달된 것이므로, 이 방법으로는 값을 변경할 수 없다.

 

참고: https://hashcode.co.kr/questions/8870/%ED%8C%8C%EC%9D%B4%EC%8D%AC%EC%97%90%EC%84%9C-for%EB%AC%B8-%EC%82%AC%EC%9A%A9%ED%95%B4%EC%84%9C-%EB%A6%AC%EC%8A%A4%ED%8A%B8-%EC%9B%90%EC%86%8C%EB%A5%BC-%EB%B3%80%EA%B2%BD%ED%95%98%EB%A0%A4%EB%A9%B4-%EC%96%B4%EB%96%BB%EA%B2%8C-%ED%95%B4%EC%95%BC-%ED%95%98%EB%82%98%EC%9A%94