리스트(list)는 파이썬에서 여러 값을 하나의 변수에 저장할 수 있는 데이터 타입이다. 리스트는 대괄호([]
)로 정의하며, 다양한 자료형을 포함할 수 있다. 즉, 리스트는 정수, 문자열, 부동 소수점, 다른 리스트까지 포함할 수 있으며 순서가 있는 데이터 모음이다. 따라서 자주 수정되는 데이터에 적합하다.
[]
)# 빈 리스트 생성
empty_list = []
# 정수 리스트
numbers = [1, 2, 3, 4, 5]
# 문자열 리스트
fruits = ['apple', 'banana', 'cherry']
# 혼합된 데이터 타입 리스트
mixed_list = [1, 'apple', 3.14, True]
# 리스트 안에 리스트 (중첩 리스트)
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
리스트 컴프리헨션은 짧고 간결하게 리스트를 생성하는 방법이다.
# 0부터 9까지의 제곱을 구하는 리스트
squares = [x**2 for x in range(10)]
print(squares) # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
리스트를 특정 규칙에 따라 생성할 수도 있다. 예를 들어, range()
함수를 사용하여 리스트를 만들 수 있다.
even_numbers = list(range(0, 11, 2)) # 0부터 10까지 짝수 리스트 생성
print(even_numbers) # [0, 2, 4, 6, 8, 10]
list()
함수 사용list()
함수를 사용하여 다른 데이터 타입을 리스트로 변환할 수 있다.
string_to_list = list("hello") # 문자열을 리스트로 변환
print(string_to_list) # ['h', 'e', 'l', 'l', 'o']
리스트의 각 요소는 인덱스로 접근할 수 있으며, 인덱스는 0부터 시작한다.
fruits = ['apple', 'banana', 'cherry']
print(fruits[0]) # 'apple'
print(fruits[2]) # 'cherry'
리스트의 일부분을 잘라내서 가져올 수 있다. 즉, 리스트의 원소 일부를 연속해서 또는 일정한 간격으로 꺼내 새로운 리스트를 만든다.
fruits = ['apple', 'banana', 'cherry', 'orange', 'grape']
print(fruits[1:4]) # ['banana', 'cherry', 'orange'] (인덱스 1에서 3까지)
print(fruits[-3:-1]) # ['cherry', 'orange'] (뒤에서 3-1 번째부터 1 번째까지)
s[:]
: list s의 원소를 모두 출력s[:n]
: 맨 앞부터 n-1 번까지 출력s[n:]
: n 번째부터 맨 끝까지 출력s[n:m]
: n 번째부터 m-1 번까지 출력s[-n:]
: 뒤에서 n-1번째부터 맨 끝까지 출력s[::k]
: 맨 앞부터 k개씩 건너뛰며 출력s[::-1]
: 맨 끝부터 전부 출력len()
fruits = ['apple', 'banana', 'cherry']
print(len(fruits)) # 3
append(x)
/ insert(i, x)
append(x)
: 리스트 끝에 x
항목을 추가, fruits[len(fruits):] = [x]
와 동일insert(i, x)
: 주어진 위치 i
에 x
항목을 삽입i
: 삽입되는 요소가 갖게 될 인덱스a.insert(0, x)
는 리스트의 처음에 삽입하고, a.insert(len(a), x)
는 a.append(x)
와 동등fruits = ['apple', 'banana']
fruits.append('cherry') # 리스트 끝에 'cherry' 추가
print(fruits) # ['apple', 'banana', 'cherry']
fruits.insert(1, 'orange') # 인덱스 1에 'orange' 삽입
print(fruits) # ['apple', 'orange', 'banana', 'cherry']
remove(x)
/ pop([i])
/ clear()
remove(x)
: x
와 같은 첫 번째 항목을 삭제pop([i])
: 목록에서 주어진 위치에 있는 항목을 제거하고 반환a.pop()
은 목록에서 마지막 항목을 제거하고 반환clear()
: 리스트의 모든 항목을 삭제, del a[:]
와 동등fruits = ['apple', 'banana', 'cherry']
fruits.remove('banana') # 'banana' 삭제
print(fruits) # ['apple', 'cherry']
# 인덱스를 이용해 삭제
fruits.pop(1) # 인덱스 1의 요소 삭제
print(fruits) # ['apple']
fruits.clear() # 리스트의 모든 항목을 삭제
print(fruits) # []
+
연산자list1 = [1, 2, 3]
list2 = [4, 5, 6]
merged_list = list1 + list2
print(merged_list) # [1, 2, 3, 4, 5, 6]
sort(*, key=None, reverse=False)
리스트의 항목들을 제자리에서 정렬한다.
numbers = [3, 1, 4, 1, 5, 9]
numbers.sort()
print(numbers) # [1, 1, 3, 4, 5, 9]
fruits = ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana']
fruits.sort()
print(fruits) # ['apple', 'apple', 'banana', 'banana', 'kiwi', 'orange', 'pear']
list.extend(iterable)
: 리스트의 끝에 이터러블의 모든 항목을 덧붙여서 확장.a[len(a):] = iterable
와 동등list.count(x)
: 리스트에서 x
가 등장하는 횟수를 돌려줌.list.index(x[, start[, end]])
: 리스트에 있는 항목 중 값이 x
와 같은 첫 번째 것의 0부터 시작하는 인덱스를 돌려주고 그런 항목이 없으면 ValueError
를 일으킴.start
와 end
는 슬라이스 표기법처럼 해석되고, 검색을 리스트의 특별한 서브 시퀀스로 제한하는 데 사용됨. 돌려주는 인덱스는 start
인자가 아니라 전체 시퀀스의 시작을 기준으로 함.list.reverse()
: 리스트의 요소들을 제자리에서 뒤집음.list.copy()
: 리스트의 얕은 사본을 돌려주고 a[:]
와 동등.fruits = ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana']
fruits.extend(['pear'])
print(fruits) # ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana', 'pear']
print(fruits.count('apple')) # 2
print(fruits.index('banana')) # 3
print(fruits.index('banana', 4)) # 6, Find next banana starting at position 4
fruits.reverse()
print(fruits) # ['banana', 'apple', 'kiwi', 'banana', 'pear', 'apple', 'orange']
참고,
https://docs.python.org/ko/3/tutorial/datastructures.html