이게 무슨 뜻이야?
In [3]: l1 = [[1,2,3],[4,5,6],[7,8,9,10],[11,12,13,14,15]]
In [4]: [e for l2 in l1 for e in l2 if e>5]
Out[4]: [6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
(내부 목록) 인덱스를 얻으려면, 당신은 enumerate
사용할 수 있습니다
In [5]: [(i2, e) for l2 in l1 for i2, e in enumerate(l2) if e>5]
Out[5]:
[(2, 6),
(0, 7),
(1, 8),
(2, 9),
(3, 10),
(0, 11),
(1, 12),
(2, 13),
(3, 14),
(4, 15)]
별도의 목록에서 인덱스를 원하는 경우 (UN) 우편 번호 :
In [6]: list(zip(*[(i2, e) for l2 in l1 for i2, e in enumerate(l2) if e>5]))
Out[6]: [(2, 0, 1, 2, 3, 0, 1, 2, 3, 4), (6, 7, 8, 9, 10, 11, 12, 13, 14, 15)]
[Python 2를 사용하는 경우에는 list
호출이 필요 없습니다.] , 압축 해제를
In [7]: [((i1,i2), e) for (i1,l2) in enumerate(l1) for i2, e in enumerate(l2) if e>5]
Out[7]:
[((1, 2), 6),
((2, 0), 7),
((2, 1), 8),
((2, 2), 9),
((2, 3), 10),
((3, 0), 11),
((3, 1), 12),
((3, 2), 13),
((3, 3), 14),
((3, 4), 15)]
또는 : 비슷한 접근 방식은 모두 외부 및 내부 목록으로 당신에게 인덱스를 줄 것이다 정확히
In [8]: idx, items = list(zip(*[((i1,i2), e) for (i1,l2) in enumerate(l1)
for i2, e in enumerate(l2) if e>5]))
In [8]: idx
Out[8]:
((1, 2),
(2, 0),
(2, 1),
(2, 2),
(2, 3),
(3, 0),
(3, 1),
(3, 2),
(3, 3),
(3, 4))
In [9]: items
Out[9]: (6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
! 이러한 가치에 대한 지표를 얻는 방법이 있습니까? –
니스, 두 번째'enumerate()'를 추가하여 내부 목록의 색인을 포함시킬 수도 있습니다. – SiHa