리스트
- 변수에 값을 여러개 저장하려 할 때 사용
- 리스트에 있는 하나의 값을 요소라 부른다.
numbers = [2, 4, 6, 8, 10]
names = ["가", "나", "다", "라"]
print(names)
print(numbers)
- 인덱싱 (indexing)파이썬에서 인덱스는 0부터 시작한다. (0, 1, 2, 3, ... )
- 요소에 번호를 매기고 불러올 때 사용
numbers = [2, 4, 6, 8, 10]
names = ["가", "나", "다", "라"]
print(names[0])
print(numbers[3])
num_1 = numbers[1]
num_2 = numbers[2]
print(num_1+num_2)
- 마이너스 인덱스인덱스가 -1 이면 제일 끝의 요소이고, -2 면 뒤에서 두 번째 요소이다. (..., -4, -3, -2, -1)
- 맨 끝에서부터 -1 로 인덱스가 시작하고, 왼쪽으로 순서대로 -1 씩 추가된다.
numbers = [2, 4, 6, 8, 10]
print(numbers[-1])
print(numbers[-2])
print(numbers[-5])
- 인덱스 슬라이싱 (index slicing)numbers[:2] : index 0 부터 index 1 까지 요소를 가져온다. (요소 2개)
- numbers[2:] : index 2 부터 끝까지 요소를 가져온다.
- 리스트의 일부분인 요소를 한번에 가져올 수 있다.
numbers = [2, 4, 6, 8, 10]
print(numbers[0:4])
print(numbers[2:])
print(numbers[:3])
new_list = numbers[:3]
print(new_list[2])
- 리스트의 값 바꾸기
- 리스트에 있는 요소의 값을 지정 연산자 "=" 을 통해서 바꿀 수 있다.
numbers = [2, 4, 6, 8, 10]
numbers[0] = 7
print(numbers)
numbers[0] = numbers[1] + numbers[2]
print(numbers)
리스트 함수
- list.append 를 통해서 리스트에 가장 오른쪽에 요소를 추가할 수 있다.
- len(list) 로 리스트의 길이 (요소의 갯수)를 알 수 있다.
numbers = []
numbers.append(5)
numbers.append(8)
print(numbers)
print(len(numbers))
- del list[index_num] 으로 리스트의 특정 인덱스의 값을 삭제할수 있다.
numbers = [2, 3, 5, 7, 11, 13, 17, 19]
del numbers[3]
print(numbers)
- list.insert(index_num, value) 를 통해 특정 인덱스에 값을 추가할 수 있다.
numbers = [2, 3, 5, 7, 11, 13, 17, 19]
numbers.insert(4, 36)
print(numbers)
리스트 정렬
- sorted(list) 는 기존 리스트를 건드리지 않고, 정렬된 새로운 리스트를 리턴한다.
numbers = [19, 13, 2, 5, 3, 11, 7, 17]
new_list = sorted(numbers)
print(new_list)
new_list = sorted(numbers, reverse = True)
print(new_list)
print(numbers)
- list.sort() 는 아무것도 리턴하지 않고, 기존 리스트를 수정해 정렬한다.
numbers = [19, 13, 2, 5, 3, 11, 7, 17]
print(numbers.sort())
numbers.sort()
print(numbers)
numbers.sort(reverse = True)
print(numbers)
리스트 꿀팁
- 리스트에서 원하는 값 찾기 (in 함수)거꾸로 값이 없는지 확인하려면 not in 을 쓰면 된다.
- 리스트에서 값의 존재를 확인하려면 in 함수를 사용하면 된다. 안에 찾는 값이 있다면 True, 없다면 False를 출력한다.
primes = [2, 3, 5, 7, 11, 13, 17, 19, 23]
print(7 in primes)
print(12 in primes)
print(7 not in primes)
print(12 not in primes)
- 리스트 안의 리스트 (Nested List)
- 리스트 안에 또 다른 리스트를 만들 수 있다.
# 세 번의 시험의 학생별 성적
grades = [[62, 75, 77], [78, 81, 86], [85, 91, 89]]
# 첫 번째 학생의 성적
print(grades[0]) # [62, 75, 77]
# 두 번째 학생의 첫 시험 성적
print(grades[2][1]) # 91
# 첫 번째 시험의 평균
print(((grades[0][0]) + (grades[1][0]) + (grades[2][0]) )/ 3) # 75.0
- sort 메소드
- list.sort()는 새로운 리스트를 생성하지 않고 정렬된 상태로 바꿔준다.
numbers = [5, 3, 7, 1]
numbers.sort()
print(numbers)
- reverse 메소드
- list.reverse() 는 원소들을 뒤집어진 순서로 배치한다.
numbers = [5, 3, 7, 1]
numbers.reverse()
print(numbers)
- index 메소드
- list.index(x) 는 리스트에서 x 의 값을 갖고 있는 원소의 인덱스를 리턴해준다.
members = ["영훈", "윤수", "태호", "혜린"]
print(members.index("윤수"))
print(members.index("혜린"))
- remove 메소드
- list.remove(x) 는 리스트에서 x 의 값을 갖고 있는 원소를 삭제한다.
members = ["영훈", "윤수", "태호", "혜린"]
members.remove("태호")
print(members)