파이썬 함수에서 리스트 내용을 바꾼뒤에 메인에서 적용되게 할 순 없나요.

조회수 416회
def exc(lis1,lis2):
    lis1,lis2 = lis2,lis1
    print("lis1:",lis1)
    print("lis2:",lis2)


a = [1,2,3]
b = [4,5,6]

exc(a,b)

print(a)
print(b)

이렇게 했을시에 exc함수 내에서는 a리스트 b리스트가 서로 반대로 나오지만

메인의 print(a), print(b)에는 다시 원래의 a리스트 b리스트값이 나오네요

함수에서 리스트 내용을 바꾼것이 메인에서 적용되게 하려면 어떻게 해야할까요?

return을 사용하면 받을 수 있지만, return 사용없이 하는 법을 알고 싶습니다.

  • 의도를 명확히 알아야 할 것 같습니다. exc 함수에서는 무엇을 하고자 하는 것이며 왜 return을 안 받고 값을 바꾸고 싶어 하는지.....리스트 a와 리스트b의 내용을 바꾸고 싶다는 것은 swap이라는 개념을 먼저 이해 하는 것이 좋을 것 같으며, 함수 내에서 선언한 a와 b 리스트를 바꾸고 싶으면 global 변수에 대해서도 이해 하시는 게 좋겠네요 알 수 없는 사용자 2019.9.30 13:18

1 답변

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)