파이썬에서 2D 목록이 있고 Data
인데 첫 번째 인덱스의 모든 요소와 두 번째의 단일 요소를 모두 선택하는 2D 목록 조각을 만들고 싶습니다.비단뱀 조각 인덱싱이 왜 직관적 인 결과를 낳습니까?
예 :
Data = [[a,b,c],[d,e,f],[h,i,g]]
나는 목록을 원한다.
raw_data = [b,e,i]
왜 이렇게합니까?
raw_data = Data[:][1]
원하는 출력을 제공하지 않습니까? 나는 첫 번째 인덱스 전체와 두 번째 인덱스를 지정했습니다. 대신에 나는 출력을 얻습니다;
raw_data = [d,e,f]
내가 기대하는 바는 무엇입니까?
raw_data = Data[1][:]
raw_data = [d,e,f]
그래서;
Data[1][:] = Data[:][1]
목록이 어떻게 파이썬에서 작동하는지 내 정신 모형과 호환되지 않습니다.
대신 루프를 사용해야합니다.
raw_data = []
for i in xrange(0,len(Data),1):
raw_data.append(Data[i][1])
그래서 제 질문은 사람이 왜
Data[1][:] = Data[:][1]
을 설명 할 수있다?
읽어 주셔서 감사합니다.
가 복용
data
의 사본의 인덱스 1 요소를 의미 목록의 전체 슬라이스가 사본을 작성하므로 목록의 동일한 사본을 만들고 항목에서 '1'을 얻거나 항목 '1'을 가져 와서 결과의 사본을 만듭니다. –나는 당신이 이것을 할 수있는 다차원리스트를 가지고있는 프로그래밍 언어에서 왔다고 가정한다. 만약'numpy'를 시도한다면 원하는 결과를 얻기 위해'Data [:, 1]'을 할 수있다. –
'list [:]'는'list '가 무엇이든간에 단지 사본입니다. 의미는'data [:] == data' (ish)와'data [1] == data [1] [:]'입니다. 그래서 물론'data [1] [:] == data [:] [1]' –