CodeGym /행동 /Python SELF KO /리스트 생성

리스트 생성

Python SELF KO
레벨 7 , 레슨 7
사용 가능

7.1 곱하기

Python에는 요소의 수를 늘릴 수 있는 편리한 구문이 있어. 이를 위해 간단한 곱셈 연산자가 사용돼.

문자열 생성

문자열에도 적용할 수 있어:


print("엄마" * 5)  # 결과: 엄마엄마엄마엄마엄마
        

또는, 예를 들어, 빠르게 구분자 문자열을 출력할 수 있어:


print("-" * 40)  # 결과: ----------------------------------------
        

리스트 생성

리스트의 요소 수를 늘릴 수도 있어:


print(["apple"] * 5)  # 결과: ['apple', 'apple', 'apple', 'apple', 'apple']
        

이 연산자는 더 실용적인 용도가 있어. 예를 들어, 0으로 채워진 10개의 요소로 구성된 리스트를 만들고 싶다면:


alist = [0] * 10
print(alist)  # 결과: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 
        

심지어 2D 배열도 만들 수 있어. 예를 들어, 0으로 채워진 20x10 배열을 만들고 싶다면. 이 또한 간단해:


alist = [[0] * 10] * 20 
print(alist)  # 결과: [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], ...]
        

아주 편리하지 않아?

7.2 List Comprehension

Python에는 "List Comprehension"이라는 유용한 도구가 있어 — 이는 리스트를 생성하기 위한 편리하고 간결한 방법이야. 이 구문 도구는 iterable 객체의 모든 요소에 표현식을 적용하여 새로운 리스트를 생성하는 것을 가능하게 해.

설명하는 것보다 보여주는 게 더 쉬울 거야. 이 구문 도구는 이렇게 생겼어:


[표현식 for 변수 in 시퀀스]

여기서:

  • 변수 — 특정 변수의 식별자,
  • 시퀀스 — 해당 변수가 취하는 값의 시퀀스 (리스트, 문자열 또는 range 함수로 얻은 객체일 수 있어),
  • 표현식 — 생성기에 사용된 변수에 의존하는, 리스트 요소를 채울 표현식.

중요! 모든 표현식은 대괄호 안에 있어야 해.

다음은 생성기를 사용하는 몇 가지 예들이야:

n개의 0으로 구성된 리스트를 생성하려면, 생성기를 사용해도 돼:


alist = [0 for i in range(100)]
        

정수 제곱으로 채워진 리스트를 생성하려면 이렇게 해:


n = 5
alist = [i ** 2 for i in range(n)]            
        

1부터 n까지의 정수로 채워진 리스트 생성:


n = 10
alist = [i + 1 for i in range(n)]
        

그리고 이렇게 해서 1부터 9까지의 임의의 숫자로 채워진 리스트를 얻을 수 있어 (random 모듈의 randrange() 함수를 사용해):


from random import randrange

n = 10
alist = [randrange(1, 10) for i in range(n)]
        

7.3 List Comprehension 내의 루프

List Comprehension은 리스트 생성외에도 사용할 수 있어. 기본적으로, 이것은 for 루프를 기록하는 간결한 방법일 뿐이야.

예를 들어, 이를 사용해서 리스트의 일부 값을 단순히 출력할 수도 있어:


alist = ["apple", "banana", "cherry"]
[print(x) for x in alist]
        

또는, 심지어는 키보드로부터 값을 입력받을 수도 있어:


a = [input() for i in range(int(input()))]
        

이 예제에서 리스트는 표준 입력에서 읽은 문자열로 구성될 거야: 먼저 리스트 요소의 수를 입력해야 해 (이 값이 range 함수의 인자로 사용될 거야), 그리고 그 다음에 지정된 수의 문자열을 입력해야 해.

익숙한 방식으로 보면 이 코드는 이렇게 보여:


n = int(input())
a = []
for i in range(n):
    x = input()  
    a.append(x)
        

사실, List Comprehension의 가능성은 꽤 많아:

조건을 사용할 수 있어:

표현식에 조건을 포함하면 요소를 필터링할 수 있어. 예를 들어, 짝수만으로 구성된 리스트를 생성할 수 있어:


[x for x in range(10) if x % 2 == 0]
        

중첩 루프:

생성기는 중첩 루프를 사용하는 것도 가능하게 해, 예를 들어 다차원 배열을 생성하기 위해:


[(x, y) for x in range(3) for y in range(3)]
        
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION