반응형
목록 평탄화
Python의 각 괄호에 문제가 있습니다.다음 출력을 생성하는 코드를 작성했습니다.
[[180.0], [173.8], [164.2], [156.5], [147.2], [138.2]]
하지만 저는 그것으로 몇 가지 계산을 하고 싶습니다만, 대괄호로는 할 수 없습니다.
브래킷을 분리하려면 어떻게 해야 합니까?저는 몇 가지 예를 보았지만, 이 케이스에 적용할 수 없었습니다.
중첩된 목록 이해를 사용하여 목록을 평탄하게 하여 "괄호 제거"를 수행합니다.그러면 목록 목록에 저장된 각 목록이 풀립니다.
list_of_lists = [[180.0], [173.8], [164.2], [156.5], [147.2], [138.2]]
flattened = [val for sublist in list_of_lists for val in sublist]
중첩된 목록 통합은 래핑 해제와 동일한 방식으로 평가됩니다(즉, 각 새 루프에 대해 줄 바꿈 및 탭 추가).이 경우:
flattened = [val for sublist in list_of_lists for val in sublist]
는 다음과 같습니다.
flattened = []
for sublist in list_of_lists:
for val in sublist:
flattened.append(val)
큰 차이는 리스트 컴포트가 풀린 루프보다 훨씬 빠르게 평가되어 추가 호출이 제거된다는 것입니다.
서브리스트에 여러 항목이 있는 경우 목록 comp는 해당 항목도 평평하게 만듭니다.즉,
>>> list_of_lists = [[180.0, 1, 2, 3], [173.8], [164.2], [156.5], [147.2], [138.2]]
>>> flattened = [val for sublist in list_of_lists for val in sublist]
>>> flattened
[180.0, 1, 2, 3, 173.8, 164.2, 156.5, 147.2,138.2]
나는 사용할 것이다.itertools.chain
- 각 서브리스트에 1개 이상의 요소가 포함됩니다.
from itertools import chain
list(chain.from_iterable([[180.0], [173.8], [164.2], [156.5], [147.2], [138.2]]))
정해진
d = [[180.0], [173.8], [164.2], [156.5], [147.2], [138.2]]
구체적인 질문은 다음과 같습니다.브래킷을 분리하려면 어떻게 해야 합니까?
목록 이해 사용:
new_d = [i[0] for i in d]
이걸 줄게
[180.0, 173.8, 164.2, 156.5, 147.2, 138.2]
적절한 인덱스를 사용하여 개별 항목에 액세스할 수 있습니다.new_d[0]
너에게 줄 것이다180.0
수학에 사용할 수 있습니다.
데이터를 수집하려면 괄호 또는 괄호를 사용합니다.
이 솔루션은 질문/문제만을 대상으로 합니다.일반화된 솔루션을 제공하는 것은 아닙니다.즉, 귀하의 경우 효과가 있을 것입니다.
>>> lis=[[180.0], [173.8], [164.2], [156.5], [147.2], [138.2]]
>>> [x[0] for x in lis]
[180.0, 173.8, 164.2, 156.5, 147.2, 138.2]
언급URL : https://stackoverflow.com/questions/11264684/flatten-list-of-lists
반응형
'programing' 카테고리의 다른 글
하나의 워크북에서 복사하여 다른 워크북에 붙여넣기 (0) | 2023.04.18 |
---|---|
iOS 버전 확인 방법 (0) | 2023.04.18 |
Xcode: 타깃과 스킴이란 쉬운 언어로 무엇입니까? (0) | 2023.04.18 |
python에서 작성 날짜별로 정렬된 디렉토리 목록을 가져오려면 어떻게 해야 합니까? (0) | 2023.04.18 |
T-SQL을 사용한 퍼지 매칭 (0) | 2023.04.18 |