1~9의 자연수를 순서만 섞어서 9개를 박아주고 싶어서
a = range(1,10) 일케 해놓고
for i in range(9):
random.shuffle(a)
result.append(a)
이렇게 했어요
넣고 섞고 넣고 섞고 반복해서 다 달라야되는데 코드 실행 후 확인해보면 9개 리스트가 전부 같아버림
왜이런거?
1~9의 자연수를 순서만 섞어서 9개를 박아주고 싶어서
a = range(1,10) 일케 해놓고
for i in range(9):
random.shuffle(a)
result.append(a)
이렇게 했어요
넣고 섞고 넣고 섞고 반복해서 다 달라야되는데 코드 실행 후 확인해보면 9개 리스트가 전부 같아버림
왜이런거?
리스트에 들어가는 리스트를 카피해서 넣어야함. 현재는 리스트 레퍼런스를 넣고 있음.
http://ideone.com/bmjKGO
뭔가 그럴거같아서 k라는 가짜 하나 만들어서 싹 옮긴다음 하니까 잘 됨. 일단 답변 감사
리스트 간단하게 카피해주는 메소드 있음? 나는 for문써서 인자를 직접 옮기는데 이러면 코드가 두줄먹어서
리스트 슬라이싱 쓰면 됨. a[:]
a[:]하면 모든 인자를 가리키게 되나?
a[:] 나 list(a) 나 똑같다고 보면 됨
모든 인자를 가르킴