목록 이해가 고급 개념이라고 생각할 수도 있습니다. 그러나 까다로운 상황에서는 한 줄만으로 코드를 단순화할 수 있습니다. 이제 그것이 어떻게 작동하는지 이해할 시간입니다. 예제를 사용하여 초급 수준에서 설명하겠습니다.
l2 = [x 1 for x in l]이라는 표기법을 자주 볼 수 있습니다. 다음과 같다고 합니다:
l2 = [] for x in l: x = x 1 l2.append(x)
두 경우 모두 l = [10, 100, 1000]으로 시작하면 l2는 다음과 같습니다.
[11, 101, 1001]
첫 번째 구문은 목록 이해라고 부르는 것입니다.
여러분은 일반적인 for 루프를 선호할 수도 있지만, 이 기사가 끝날 때쯤에는 목록 이해를 사용하는 데 자신감을 갖게 될 것이라고 약속합니다!
추가로 https://docs.python.org/3/tutorial/datastructures.html#list-comprehensions
문서에서 자세한 공식 정의를 확인해 보겠습니다.목록 이해는 목록을 만드는 간결한 방법을 제공합니다. 일반적인 응용 프로그램은 각 요소가 다른 시퀀스의 각 멤버에 적용된 일부 작업의 결과이거나 반복 가능한 새 목록을 만들거나 특정 조건을 충족하는 해당 요소의 하위 시퀀스를 만드는 것입니다.
더 자세히 살펴보겠습니다. 목록 이해는 새 목록을 더 짧고 쉽게 만들 수 있는 코드를 작성하는 다른 방법일 뿐입니다. 목록 이해의 결과는 목록이므로 목록에 할당합니다.
일반적인 예를 논의하는 정의의 두 번째 부분을 살펴보겠습니다. 이는 구체적인 예를 사용하여 수행되어야 합니다.
1.
fast_foods = ["Burger", "Pizza", "Tacos", "Fried Chicken", "Hot Dog"] uppercase_fast_foods = [food.upper() for food in fast_foods]
이후, uppercase_fast_foods는 다음과 같습니다:
['BURGER', 'PIZZA', 'TACOS', 'FRIED CHICKEN', 'HOT DOG']
upper() 함수를 사용하여 목록의 각 음식 항목을 대문자로 변경합니다. 결과적으로 이제 모든 항목은 대문자로 표시됩니다. 이것이 우리가 '각 요소가 다른 시퀀스의 각 멤버에 적용된 일부 작업의 결과이거나 반복 가능한 새 목록을 만드는' 방법입니다.
2.
fast_foods = ["Burger", "Pizza", "Tacos", "Fried Chicken", "Hot Dog"] foods_with_space = [food for food in fast_foods if " " in food]
이후에 food_with_space는 다음과 같습니다.
['Fried Chicken', 'Hot Dog']
위의 코드 줄은 목록에서 공백 문자가 포함된 항목을 검색합니다. 이것이 우리가 '각 요소가 다른 시퀀스의 각 멤버에 적용된 일부 작업의 결과이거나 반복 가능한 새 목록을 만드는' 방법입니다.
나는 너무 많은 for 루프를 만날 때마다 '문제없어, 그냥 단순화하겠다'고 생각했기 때문에 많은 문제에서 목록 이해를 사용해 왔습니다. 결과적으로는 동일한 논리이고 더 깔끔합니다! ?
더 이상 고민하지 말고 제가 생각해낸 가장 관련성이 높은 몇 가지 예를 소개하겠습니다.
1. 목록의 각 요소 수정
foods = ["Burger", "Fries", "Fried Chicken", "Hot Dog", "Pizza"] foods_with_version = [food ' - 2024' for food in foods] print(foods_with_version)
산출:
['Burger - 2024', 'Fries - 2024', 'Fried Chicken - 2024', 'Hot Dog - 2024', 'Pizza - 2024']
이 예에서는 식품 항목 목록을 가져와 각 항목에 '- 2024'를 추가합니다. 우리는 업데이트된 이름으로 새 목록을 빠르게 생성하기 위해 목록 이해를 사용합니다.
2. 조건에 따라 목록에서 하위 목록 만들기
foods = ["Burger", "Fried Chicken", "Hot Dog", "Fries", "Pizza"] long_foods = [food for food in foods if len(food) > 7] print(long_foods)
산출:
['Fried Chicken']`
이 예에서는 음식 항목 목록을 생성하고 7자를 초과하는 항목을 필터링합니다. 우리는 이를 달성하기 위해 조건과 함께 목록 이해를 사용합니다.
3. 목록 이해와 함께 범위 함수를 사용하여 목록을 만듭니다.
x = [i for i in range(10, 20, 2)] print(x)
산출:
[10, 12, 14, 16, 18]
이 예에서는 range()를 사용한 목록 이해를 사용하여 10에서 18 사이의 숫자 목록을 만듭니다.
4. 문자열에 목록 이해 적용
input_string = "hello world" marked_vowels = ['*' if char in 'aeiouAEIOU' else char for char in input_string] print(marked_vowels)
산출:
['h', '*', 'l', 'l', '*', ' ', 'w', 'o', 'r', 'l', 'd']
이 마지막 예에서는 문자열을 가져와서 모음을 별표(*)로 표시합니다. 우리는 원래 문자열을 기반으로 새 목록을 생성하기 위해 목록 이해를 사용합니다.
이 글 전체에서 나는 목록 이해에 대한 정의부터 이를 자세히 설명하는 다양한 예까지 모든 기본 통찰력을 다루었습니다. 모든 것이 명확해지길 바라며, 이제부터 여러분의 Python 코드에 목록 이해 기능을 통합하려는 의욕이 더 생기기를 바랍니다!
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3