2017-02-17 4 views
0

그래서 나는 목록을 이해할 수있게 머리를 감싸려고 노력하고있다. 여기에 내가 가진 것이있다.는 파이썬에서 목록의 이해력을 내장 할 수 있습니까?

all_students = [line.split() for line in data] 
all_students = [[data.strip() for data in student]for student in all_students] 

훌륭한 작품입니다. 예상대로 배열의 배열을 반환합니다. 제 질문은 이러한 두 표현식을 하나로 결합 할 수 있습니까? 나는 많은 일들을 시도해 왔으며, 가능한 경우 대답은 여전히 ​​나를 벗어났다. (정확히 확인되지는 귀하의 케이스 인 경우)

[[d.strip() for d in line.split()] for line in data] 

예 :

+2

을 당신이 그것을 읽을 수 및 유지 관리 및 디버그하기 어려워진다 과장 경우, 중첩 된 지능형리스트와 함께 플레이하는 것이 좋다있다. 그대로 두십시오 - 내 두 센트. – alfasin

+0

'data'에 대한 예제 구조를 제공 할 수 있습니까? – Nentuaby

+0

'list (map (str.strip, map (str.split, data)))' –

답변

1

나는 당신의 논리가 이것에 동일한 생각

data = ['a b', 'c d'] 

[[d.strip() for d in line.split()] for line in data] 
# [['a', 'b'], ['c', 'd']] 

all_students = [line.split() for line in data] 
[[data.strip() for data in student]for student in all_students] 
# [['a', 'b'], ['c', 'd']] 
+0

그래, 맞아. 이제 나는 그것을 보았다. 그것은 명백하게 보인다. 고마워 친구. –

1

아마이?

all_students = [[d.strip() for d in stu] for stu in map(str.split, data)] 
+0

왜'str.strip'도 매핑하지 않습니까? –

+0

그래, 그 작품,하지만 결코 코드를 더 읽기 쉽게 제외하고'map'을 사용하는 것을 좋아하지 않습니다. 플러스 외곽'map'을 사용하면 파이썬 3에서'list'를 호출해야합니다. –

0

당신은 all_students의 장소에서 다른 지능형리스트를 넣을 수 있습니다 :

all_students = [[data.strip() for data in student] for student in [line.split() for line in data]]