스택큐힙리스트

리스트 컴프리헨션에서의 이중 반복 [중복] 본문

카테고리 없음

리스트 컴프리헨션에서의 이중 반복 [중복]

스택큐힙리스트 2023. 4. 19. 13:45
반응형

이 질문에 대한 답변은 이미 여기에 있습니다.

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 내부 반복문에서 생성됩니다.

결론적으로, 이중 반복문과 리스트 컴프리헨션은 파이썬 프로그래밍에서 매우 유용한 기술입니다. 그들은 패턴과 리팩토링에 대한 대안을 제공하고 파이썬 코드를 작성하는 데 필수적입니다. 이 기술은 코드를 간결하고 읽기 쉽게 만들어줍니다. 따라서 이 기술을 배우고 효과적으로 사용하는 것이 중요합니다.

반응형
Comments