중첩 리스트에서 열을 뽑아주는 내장함수가 있나요?

조회수 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]

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)