2016-07-02 5 views
7

이 상황에서 콜론과 콜론의 차이점은 무엇입니까?파이썬 : 단일 콜론 대 더블 콜론

women_only_stats = data[0::,4] == "female" 

men_only_stats = data[0::,4] != "female" 

data[0:,4]data[0::,4] 나는 data[0:,4]data[0::,4]를 교체 시도하고 나는 어떤 차이를 볼 수 없습니다. 이 사건이나 다른 사건에 어떤 차이가 있습니까?

data 차이점은 없다 ['1' '0' '3' 'Braund, Mr. Owen Harris' 'male' '22' '1' '0' 'A/5 21171' '7.25' '' 'S']

답변

5

아니오, 차이는 없습니다. 워드 프로세서

: 없음 a[start:stop:step]

시작 단계 인수 기본

slice에 대한 파이썬 문서를 참조하십시오. Slice 객체는 읽기 전용 데이터 속성 인 begin, stop 및 step을 가지고 있으며 이는 단지 인수 값 (또는 기본값)을 반환합니다.

이 경우 비어있는 step 매개 변수가 포함됩니다.

>>> a = [1,2,3,4] 
>>> a[2:] 
[3,4] 
>>> a[2::] 
[3,4] 
>>> a[2:] == a[2::] 
True 

그리고 step 매개 변수가 실제로 무엇을하는지 이해하기 : 암시 None (즉, 하나 a[2:] 또는 a[2::]에 의해), 당신은 출력을 변경하지 않을 것으로를 남겨 그래서

>>> b = [1,2,3,4,5,6,7,8,9,10] 
>>> b[0::5] 
[1, 6] 
>>> b[1::5] 
[2, 7] 

어떤 방식 으로든 코드의

희망이 도움이됩니다.

0

같은 열의 2 차원 어레이이다. 같은 slice 개체로 색인을 생성하고 있습니다.

4

두 구문 모두 동일한 색인을 생성합니다.

class Foo(object): 
    def __getitem__(self, idx): 
    print(idx) 

Foo()[1::,6] 
# prints (slice(1, None, None), 6) 
Foo()[1:,6] 
# prints (slice(1, None, None), 6) 

기본적 1::,6는 슬라이스 (1::) 및 번호 (6)의 튜플이다. 슬라이스의 형식은 start:stop[:stride]입니다. 보폭을 공란으로 두거나 (1::) 진술하지 않으면 (1:) 동등합니다.

0

이것은 다음과 같습니다. s[start:end:step]. 단계 단계으로 시작부터 끝까지 슬라이스합니다. 귀하의 경우 데이터에

0

data = ['1' '0' '3' 'Braund, Mr. Owen Harris' 'male' '22' '1' '0' 'A/5 21171' '7.25' '' 'S'] 

입니다 그래서 단지 하나의 항목이 목록에있다이 sitation에서

data = ['103Br.............7.25S'] 

동일하므로 데이터 [0 : 4] 또는 데이터 [0 : 4]는 어떤 영향을 미치지 않습니다.

당신은/당신의 질문을 취소하여 스텝 크기는 데이터 길이 후 작은 경우 그것은

data[start:end:step] 

처럼 작동

print data[0][0::4] 
print data[0][0:4] 

그래서 평소와 같이 행동 응답 할 것이다 이것을 시도합니다.