> 백엔드 개발 > 파이썬 튜토리얼 > Python\의 `random.shuffle()`이 `None`을 반환하는 이유는 무엇입니까?

Python\의 `random.shuffle()`이 `None`을 반환하는 이유는 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-11-26 14:31:10
원래의
789명이 탐색했습니다.
Why Does Python's `random.shuffle()` Return `None`?
An In-Place Affair

수정된 데이터 구조를 반환하는 관례와는 반대로, Random.shuffle ()는 좀 더 수수께끼 같은 경로를 선택합니다. 이는 해당 작업에 대한 실질적인 증거 없이 적용되는 목록을 자동으로 변환합니다. "내부 수정"으로 알려진 이 미묘한 변경은 데이터 구조를 수정하는 많은 Python API 메서드의 특징입니다. 따라서 Random.shuffle()은 None을 반환하고 명시적인 확인 없이 섞인 목록을 남깁니다.

섞기 목격

random.shuffle()의 파악하기 어려운 작업을 보려면 다음을 고려하십시오. code:

이 코드를 실행하면 섞인 목록이 인쇄되어 다음의 결과가 표시됩니다. Random.shuffle()의 보이지 않는 작업.

새 섞인 목록 만들기

그러나 단순히 목록의 변형을 확인하는 것이 아니라 새로운 섞인 목록을 만드는 것이 목적이라면 다른 방법을 사용하세요. 당신을 기다리고 있습니다. Random.sample()은 원본을 그대로 유지하면서 기존 목록의 섞인 복사본을 생성하는 방법을 제공하여 제공 준비가 되어 있습니다.
x = ['foo', 'bar', 'black', 'sheep']
from random import shuffle
random.shuffle(x)
print(x)
로그인 후 복사

또는 sorted()를 random.random()과 결합하여 제공합니다. 계산 비용이 들기는 하지만 섞인 목록에 대한 또 다른 경로:

두 접근 방식 모두 섞인 복사본을 생성합니다. 원본 목록을 방해하지 않고 새 목록을 조작할 수 있습니다.

shuffled_x = random.sample(x, len(x))
로그인 후 복사
결론

random.shuffle() 함수의 특이한 동작은 처음에는 눈썹을 치켜뜨게 할 수 있지만 그 위치를 이해하면 됩니다. 성격을 수정하고 새로운 섞인 목록을 만들기 위한 대체 접근 방식을 탐색하면 무작위 마법을 효과적으로 활용할 수 있습니다.
shuffled_x = sorted(x, key=lambda k: random.random())
로그인 후 복사

위 내용은 Python\의 `random.shuffle()`이 `None`을 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿