리스트이 index
- 0부터 카운트 한다.
- 0번째, 1번째, 2번째 ...
리스트 초기화
a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(a)
print(a[3])
n = 10
a = [0] * n
print(a)
- 선언과 동시에 초기화가 가능하다
- *곱하기 연산을 사용하여 리스트 초기화가 가능하다.
리스트 인덱싱
a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(a[7])
print(a[-1])
print(a[-3])
a[3] = 7
print(a)
- 인덱스를 통해 리스트 원소에 접근이 가능하다.
- a[-1] : 뒤에서 1번재 원소를 출력
- a[-3] : 뒤에서 3번째 원소를 출력
리스트 슬라이싱
a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(a[3])
print(a[1:4])
- a[1:4] : 1번째 원소부터 4-1 = 3 번째 원소까지를 의미한다.
리스트 컴프리헨션
array = [i for i in range(10)]
print(array)
array = [i for i in range(20) if i % 2 == 1]
print(array)
array = [i ** 2 for i in range(1, 10)]
print(array)
- 리스트 컴프리헨션 : 리스트 안에 식, for문, if문 등으로 작성하여, 리스트를 생성하는 것을 말한다.
리스트 컴프리헨션과 일반적인 코드 비교
array = [i for i in range(20) if i % 2 == 1]
print(array)
array = []
for i in range(20):
if i % 2 == 1:
array.append(i)
print(array)
2차원 리스트 초기화 by 리스트 컴프리헨션
n = 4
m = 3
array = [[0] * m for _ in range(n)]
print(array)
array[1][1] = 5
print(array)
# 잘못된 예시: N*M 크기의 2차원 리스트 초기화
n = 4
m = 3
array = [[0] * m] * n
print(array)
array[1][1] = 5
print(array)
- 좋은 예시: [[0] * m for _ in range(n)]
- 나쁜 예시: [[0] * m] * n
- 나쁜 예시의 경우, 열의 주소값이 다 같아지므로, 우리가 일반적으로 원하는 2차원배열이 생성되지 않는다.
언더바의 관용적 사용예
sum = 0
for i in range(10):
sum += i
print(sum)
for _ in range(5):
print("Hello World!")
- 반복하는 횟수 자체가 for문안에서의 사용이 필요가 없는, 단순반복문을 작성할 때 언더바를 사용한다.
리스트 관련 기타 메소드
a = [1, 4, 3]
print(a)
a.sort()
print(a)
a.sort(reverse = True)
print(a)
a.reverse()
print(a)
a.append(2)
print(a)
a.insert(2, 3)
print(a)
a.remove(1)
print(a)
del a[1]
print(a)
pop_num = a.pop(0)
print(a)
print(pop_num)
a.clear()
print(a)
print(a.count(3))
- a.sort() : 오름차순 정렬
- a.sort(reverse = true) : 내림차순 정렬
- a.reverse() : 역순으로 바꿔준다.
- a.append(1) : 리스트 a에 원소 1을 추가한다.
- a.insert(2, 3) : 리스트 a의 index 2번째 자리에, 원소 3을 삽입한다.
- a.remove(1) : 리스트 a의 원소중에서, 1에 해당하면 제거한다. 여러개라면 오름차순으로 진행순서로 제일 먼저 발견된 것만 제거한다.
- del a[1] : 리스트 a의 1번째 원소를 제거한다.
- a.pop(0) : 리시트 a의 0번째 원소를 제거하면서, 해당 원소를 반환한다.
- a.clear() : 리스트를 빈 리스트로 만든다.
set자료형과 in, not in 메소드 and 리스트
a = [1, 2, 3, 4, 5, 5, 5]
print(a)
remove_set = {3, 5}
result = [i for i in a if i not in remove_set]
print(result)
- 리스트에서 특정 값을 가지는 원소를 모두 제거할때 유용하다.
리스트를 문자열로 변환하여 출력
list_ex = ['a', 'b', 'c', 'd', 'e', 'f']
print(', '.join(list_ex))
print(''.join(list_ex))
- join을 사용하면, 각 리스트원소들 사이에 문자열을 조합시켜서 출력이 가능하다.