2016-06-22 3 views
0

팁이 필요합니다. 사각형 목록 "y"("y"는 nxn 크기)가 있습니다.목록에서 특정 행과 열을 삭제하려면 어떻게해야합니까?

y=[[20,30,35,40], 
    [10,25,55,45], 
    [15,39,19,59], 
    [25,35,24,17]] 

내가 다른 목록 "X".This은 예입니다 ("X"는 NX2 크기가) 있습니다 :

x=[[1,1] 
    [2,0] 
    [3,0] 
    [4,1]] 

나는 목록에서 찾으려면 "X를이 예입니다 "(각 행에 대해) (목록"x "의 두 번째 열에) 숫자"1 "이 표시됩니다. 숫자 "1"이 목록 "x"의 두 번째 열에 나타나면 "y"목록에서 해당 행과 해당 열을 삭제하려고합니다. 위의 예에서 "x"목록에서 "x"목록의 첫 번째 행과 네 개의 행에 숫자 "1"이 나타납니다. 그런 다음 "y"목록의 각 행과 열을 삭제해야합니다.

목록 "x"의 첫 번째 행에 위의 예에서 "1"이 표시되면 원하는 목록 "y"가됩니다 (첫 번째 행을 삭제하고 원래 목록의 첫 번째 열을 삭제해야합니다 "Y"), "1"리스트에서 세 번째 행 했으므로

y=[[25,55,45], 
     39,19,59], 
     35,24,17]] 

그리고, "x"는 (상술 한 예), 이것은 (I 세번째 삭제할 필요가 "Y"원하는 목록은 행을 삭제하고 원래 목록 "y"의 세 번째 열을 삭제하십시오.) :

y=[ [25,45] 
     [35,17] 

고마워요. 아직도 정확히 당신이 원하는 행과 열을 제거하는 불분명하지만

+2

지금까지 어떤 코드를 사용해 보셨습니까? –

+2

"x"의 세 번째 행에 "1"이 표시되지 않습니다. –

+1

이것은 "나에게 숙제를 할 수 있니?"사이트가 아닌 "숙제 해결에 도움이 될 수 있습니까?"사이트 –

답변

1

기능

def remove(a,i,j): 
    return [row[:j] + row[j+1:] for k,row in enumerate(a) if k != i] 

, 당신의 진술 질문 ("나는 목록에서 특정 행과 열을 삭제하는 방법")를 응답합니다.

>>> y 
[[25, 45], [35, 17]] 

y의 경우

, 두 줄

>>> y = remove(y,0,0) 
>>> y = remove(y,1,1) 

결과는 당신은 x를 반복하고 (01을 필요한 인덱스를 계산하는 방법을 강구해야 이 경우).

관련 문제