2011-07-30 2 views
1

누구나 파이썬에서 분할 함수가 어떻게 작동하는지 알고 있습니까? 내 말은 char에 의해 char이라는 문자열을 읽고 코드를 평가하는지 아니면 다른 방식으로 작업하는지 여부입니다. 나는 의사를 읽었지만 언급하지는 않았다.python - 분할 방법은 어떻게 작동합니까?

EDIT 나처럼 호기심이 사람들을 위해

, 단지 here을 확인합니다. 크리스가 말한대로 147 번째 줄에 있어야합니다.

+2

설명서에는 구현 방법이 거의 제공되지 않습니다. 그런 종류의 것은 그 요점을 무너 뜨립니다. 정말 궁금하신 분은 소스 코드를 확인하십시오. –

+0

+1 왜 신경 쓰시겠습니까? –

답변

3

python 소스 코드 (2.7.1을 사용했지만 3.x 시리즈에서 위치가 변경된 것 같습니다)를 확인한 경우 $src_dir/Objects/stringlib/split.h에서 전체 구현을 찾을 수 있습니다. 이 함수의 이름은 stringlib_split이고 2.7.1은 147 행에서 찾을 수 있습니다.

+0

덕분에 많이 찾았습니다. :) – Shaokan

3

말하기, 3.2로 말하면 몇 가지 split() 구현이 있습니다. 무엇보다도 인수가없는 split()은 다른 스플릿과 약간 다른 의미를 가지고 있기 때문에 자체적으로 구현됩니다. 분할 문자열이 주어지면, 하나의 문자 분리 기호에 대한 구현과 다른 문자열에 대한 구현이 두 가지 구현이 가능합니다. 한 문자 구현은 단순히 문자열을 스캔하여 청크를 목록에 추가합니다. 긴 문자열의 경우 알고리즘은 동일하지만 검색은 Bloom filters으로 수행됩니다.

+0

감사합니다. Ben, 좋은 답변에 대한 답변입니다. – Shaokan

+0

사람이 왜 기본 문자와 단일 문자를 사용하는지의 차이점을 알고 있습니까? 구체적으로 : s = "1 2 3 4 5 6"; # 인쇄 [ '1', '2', '3', '4', '5', '6'] 인쇄 (s.split ('') # prints [ '1', '2', '3', '', '4', '5', '6', '', '', '', ''] –

관련 문제