스택큐힙리스트
리스트 컴프리헨션에서의 이중 반복 [중복] 본문
이 질문에 대한 답변은 이미 여기에 있습니다.
How can I use list comprehensions to process a nested list?
1. Hello - 안녕하세요
2. Goodbye - 안녕히 가세요
3. Thank you - 감사합니다
4. Yes - 예
5. No - 아니오
6. Please - 부탁합니다
7. Excuse me - 실례합니다
8. Sorry - 죄송합니다
9. How are you? - 어떻게 지내세요?
10. I don't understand - 이해하지 못합니다
11. Can you speak English? - 영어를 할 수 있나요?
12. What is your name? - 이름이 뭐에요?
13. Where are you from? - 어디에서 왔어요?
2개월 전에 종료되었습니다.
파이썬에서는 리스트 컴프리헨션에서 여러 개의 이터레이터를 가질 수 있습니다. 예를 들어:
[(x,y) for x in a for y in b]
일부 적합한 순서에 대해 a와 b를 위한 것입니다. Python의 목록 표현식의 중첩 루프 의미론을 인지하고 있습니다.
내 질문은 여기 있습니다: 컴프리헨션에서 한 이터레이터가 다른 이터레이터를 참조할 수 있을까요? 즉, 다음과 같은 것이 가능할까요?:
[x for x in a for a in b]
외부 루프의 현재 값이 내부의 반복자인 경우는 어디인가요?
예를 들어, 내가 중첩 리스트가 있다면:
a=[[1,2],[3,4]]
이 결과를 얻기 위한 리스트 컴프리헨션 식은 무엇일까요?
[1,2,3,4]
이해도
답변 1
당신은 문장으로 가득 찬 텍스트가 있고 단어 배열이 필요할 경우를 가정해보십시오.
# Without list comprehension
list_of_words = []
for sentence in text:
for word in sentence:
list_of_words.append(word)
return list_of_words
나는 리스트 함축을 코드를 가로로 늘리는 것으로 생각하는 것이 좋다.
시도하여 그것을 분해해보세요:
# List Comprehension
[word for sentence in text for word in sentence]
Hello, how are you? - 안녕하세요, 어떻게 지내세요?
>>> text = ((Hi, Steve!), (What's, up?))
>>> [word for sentence in text for word in sentence]
['Hi', 'Steve!', What's, 'up?']
이것은 발전기에도 작동합니다.
>>> text = ((Hi, Steve!), (What's, up?))
>>> gen = (word for sentence in text for word in sentence)
>>> for word in gen: print(word)
Hi
Steve!
What's
up?
답변 2
이중 반복문은 파이썬 인터프리터에서 리스트 컴프리헨션을 사용할 때 특히 유용합니다. 리스트 컴프리헨션은 조건부 표현과 함께 iterator를 지원하는 기능으로, 간결하게 리스트를 생성할 수 있습니다. 그리고 이중 반복문은 리스트의 모든 조합을 생성하는 데 사용됩니다.다중 반복문은 자연스럽게 반복문의 순서에 따라 처리됩니다. 먼저 외부 반복문을 실행하고 내부 반복문을 실행합니다. 즉, 외부 반복문에서 생성된 값은 내부 반복문에서 사용됩니다. 이 방법으로 중첩된 리스트를 만들 수 있습니다.
하지만 이 방법은 가독성과 유지 보수에 문제가 있을 수 있습니다. 코드가 길어지고 복잡해지기 때문입니다. 그래서 리스트 컴프리헨션을 사용하면 더 간결하게 코드를 작성할 수 있습니다.
그래서 이중 반복문을 사용하여 리스트 컴프리헨션을 작성할 수 있습니다. 예를 들어, 다음과 같은 코드를 사용하여 2차원 리스트를 만들 수 있습니다.
matrix = [[x*y for y in range(5)] for x in range(3)]
이 코드는 3개의 외부 리스트를 생성하고 각각의 외부 리스트에 내부 리스트가 5개 생성됩니다. 내부 리스트는 x 외부 반복문과 y 내부 반복문에서 생성됩니다.
결론적으로, 이중 반복문과 리스트 컴프리헨션은 파이썬 프로그래밍에서 매우 유용한 기술입니다. 그들은 패턴과 리팩토링에 대한 대안을 제공하고 파이썬 코드를 작성하는 데 필수적입니다. 이 기술은 코드를 간결하고 읽기 쉽게 만들어줍니다. 따라서 이 기술을 배우고 효과적으로 사용하는 것이 중요합니다.