hustle_D 2025. 7. 8. 14:18
반응형

파이썬에서 리스트(List)는 여러 개의 값을 순서대로 저장할 수 있는 자료형으로 자바의 ArrayList, C++의 vector와 비슷하며, 다양한 타입의 데이터를 한 리스트에 넣을 수 있는 자료형이다.

 

리스트의 문법

리스트를 생성할때는 다른 언어들보다 간단하다

numbers = [1, 2, 3, 4]
fruits = ["apple", "banana", "cherry"]
mixed = [1, "apple", 3.14, True]
empty = []

타입을 따로 지정해주지 않아도 되기에 그냥 있는대로 중괄호 내부에 넣어주면 된다.

 

리스트의 인덱스는 0부터 시작하며 음수 인덱스도 지원 한다 .

print(numbers[0])   # 1
print(fruits[-1])   # "cherry"

음수 인덱스의 경우는 뒤에서 부터 순서대로 값을 가져온다.

 

값을 수정할때는 수정하고자 하는 값의 인덱스에 다른 값을 넣어주면 된다.

numbers[1] = 100
# numbers: [1, 100, 3, 4]

 

리스트의 경우도 문자열과 동일하게 슬라이싱이 존재한다.

원하는 범위를 아래와 같이 슬라이싱 해서 사용하면 된다.

print(numbers[1:3]) # [100, 3]

 

리스트의 주요 메서드

1. append(value) : 리스트의 맨 끝에 요소를 추가

numbers.append(5)      # [1, 100, 3, 4, 5]

 

2. insert(index, value) : 리스트의 특정 인덱스에 요소를 추가

numbers.insert(1, 99)  # [1, 99, 100, 3, 4, 5]

 

3. remove(value): 리스트에서 특정 값을 찾아 제거

numbers.remove(3)      # [1, 99, 100, 4, 5]

 

4. pop([index]): 리스트에서 값을 제거하고 해당 값을 반환

전달인자로 인덱스를 전달하고 전달하지 않을 경우 가장 마지막 요소 가 제거된다.

name.pop(name.index("lee")) #lee 제거 - ['park', 'kang', 'kong', 'choi']
name.pop()                  #choi 제거 - ['park', 'kang', 'kong']

 

5. len(List) : 리스트를 전달해서 해당 리스트의 길이를 반환한다

print(len(numbers))    # 4

 

6. sort() / reverse() : 정렬 / 역 정렬

cnt = [4,5,2,6,4,1]
cnt.sort()             # 오름차순 정렬
print(cnt)             # [1, 2, 4, 4, 5, 6]
cnt.reverse()          # 역순 정렬
print(cnt)             # [6, 5, 4, 4, 2, 1]

 

리스트 컴프리헨션(List Comprehension)

리스트 컴프리헨션(list comprehension)은 리스트 및 반복 가능한 객체를 한줄로 가공해서 새 리스트로 만드는 문법이다.

 

문법의 원형은 

[표현식 for 변수 in 반복가능한객체 [if 조건식]]

 

와 같은 방식으로 구성되며 각각 아래의 의미를 가진다.

 

  • 표현식 : 새로 생성될 리스트의 각 요소를 만드는 방식
  • for 변수 in 반복가능한객체 : 반복문
  • if 조건식 : (선택적) 조건이 맞을 때만 값 추가

예시를 보자면 

even_nums = [x for x in nums if x % 2 == 0]
print(even_nums)    # [2, 4]

 

 

nums라는 배열의 요소를 돌면서 요소가 짝수일경우 x를 even_nums에 넣어 배열을 생성해준다

 

추가로 하나를 더 보자면 

nums = [1, 2, 3, 4, 5]
squares = [x * x for x in nums]
print(squares)      # [1, 4, 9, 16, 25]

nums라는 배열을 돌면서 요소 * 요소로 각각의 제곱에 해당하는 값을 요소로 squares에 배열을 생성해준다

 

반응형