2016-09-25 4 views
0

기본적으로 목록에 항목을 그룹화하려고합니다. 예를 들어 :파이썬에서 목록 내포를 사용하여 중첩 목록 만들기

  1. [1, 2, 3, 4, 5, 6]를 들어, 내가 중첩 된 목록을 unnest하는 방법을 알고, 내가 [[1, 2, 3], [4, 5, 6], [7]]

을 원하는 [1, 2, 3, 4, 5, 6, 7]를 들어 [[1, 2, 3], [4, 5, 6]]

  • 를 원하지만 어떻게 중첩 된 목록을 만들려면 아무 생각이 없습니다.

  • 답변

    2

    당신은 3range 출력 슬라이스 지능형리스트를 사용할 수 있습니다

    >>> l = [1, 2, 3, 4, 5, 6, 7] 
    >>> [l[i:i+3] for i in range(0, len(l), 3)] 
    [[1, 2, 3], [4, 5, 6], [7]] 
    
    >>> l = [1, 2, 3, 4, 5, 6] 
    >>> [l[i:i+3] for i in range(0, len(l), 3)] 
    [[1, 2, 3], [4, 5, 6]] 
    

    범위는 두 번째 말이고 단계 세 번째, 첫 번째 범위의 시작이다 세 개의 인수를 취합니다. 파이썬 2를 사용한다면 xrange을 대신 사용하십시오.

    1

    나는이 방법으로 그것을 할 수 있다고 생각 :

    target = [1, 2, 3, 4, 5, 6, 7] 
    n = 3 
    print([target[i:i+n] for i in range(0, len(target), n)]) 
    

    당신은 N을 변경하여 하위 목록의 크기를 변경할 수 있습니다. 그러나 위의 코드에서 두 번 대상을 두 번 사용합니다. 대상을 한 번 사용하는 방법을 찾기를 바랍니다.