중첩 리스트에서 열을 뽑아주는 내장함수가 있나요?
조회수 4453회
아래 코드에서 lst 같은 중첩 리스트가 있을때 원하는 열을 뽑아서 리스트로 만들어 주는 내장 함수 가 있을지요?
즉 아래에서 두번째 for loop 부분을 함수 하나로 실행시켜서 col_2에 저장하는 내장함수가 있을지요?
lst = []
for i in range(5):
dicTest = { 0: 0, 1: 0, 2: 0}
dicTest[i%3] += 1
lst.append([[i]*3,dicTest,i*2,i*3])
print(lst[i])
col_2 = []
for i in range(5):
col_2.append(lst[i][2])
print(col_2)
실행결과
[[0, 0, 0], {0: 1, 1: 0, 2: 0}, 0, 0]
[[1, 1, 1], {0: 0, 1: 1, 2: 0}, 2, 3]
[[2, 2, 2], {0: 0, 1: 0, 2: 1}, 4, 6]
[[3, 3, 3], {0: 1, 1: 0, 2: 0}, 6, 9]
[[4, 4, 4], {0: 0, 1: 1, 2: 0}, 8, 12]
[0, 2, 4, 6, 8]
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
파이썬 기본 list에는 그런 내장 함수는 없고요, 대신
col_2 = [i[2] for i in lst]
로 축약할 수 있습니다.
원하시는 내장함수는 numpy 모듈 array 타입에 구현되어 있는데요. 예를 들어 다음 코드를 실행하는 경우,
import numpy lst = numpy.array([ [1,2,3], [4,5,6], [7,8,9] ]) print lst[:,2]
실행결과는 이렇습니다
`` [3 6 9]
-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력