주어진 목록 (또는 numpy로 배열)의 (연속적인) 부분 만 셔플 할 수 있습니까?첫 번째 요소를 수정하고 목록/배열의 나머지 부분을 임의로 섞습니다.
이것이 일반적으로 불가능한 경우 나머지 목록/배열을 섞어 야하는 동안 첫 번째 요소가 고정되는 특별한 경우는 어떨까요?
to_be_shuffled = [None, 'a', 'b', 'c', 'd', ...]
나머지는 반복적으로 단행 될 것 동안 첫 번째 요소는 항상 유지해야한다 : 예를 들어, 나는 목록/배열을 가지고있다.
하나의 가능한 방법은 전체 목록을 먼저 섞은 다음 첫 번째 요소가 특수 고정 요소 (예 : None
)가 아닌지 확인한 다음 특수 요소의 위치와 바꿉니다 (그러면 조회).
더 좋은 방법이 있습니까? 단지
import random
rest = to_be_shuffled[1:]
random.shuffle(rest)
shuffled_lst = [to_be_shuffled[0]] + rest
numpy 배열을 사용하여 구현하기로 선택 했으므로이 방법이 가장 좋은 해결책입니다.다른 솔루션은 또한 매우 유용하며 다른 사람들이 각각의 유스 케이스에 적합하다고 생각하기를 바랍니다. – skyork