제로베이스 데이터 취업 스쿨 과정 학습 내용을 정리한 포스팅입니다.
📍 리스트(list)
배열과 같이 여러 개의 데이터를 나열한 자료구조
students = ['홍길동', '박찬호', '이용규', '박승철', '김지은']
numbers = [10, 20, 30, 40, 50]
data = [10, 20, 30, [40, 50, 60]] # 리스트 안의 리스트도 가능
- 문자, 숫자 뿐만 아니라 data와 같이 리스트 안의 리스트도 가능하다.
students[0] # 홍길동
students[1] # 박찬호
- 리스트 아이템 조회하는 방법 students[i]
len(students) # 5
- len() 함수로 길이(length)를 반환 가능
students = ['홍길동', '박찬호', '이용규', '박승철', '김지은']
for idx, value in enumerate(students):
print(f'{idx} : {value}')
# 0 : 홍길동
# 1 : 박찬호
# 2 : 이용규
# 3 : 박승철
# 4 : 김지은
- enumerate() 함수는 아이템의 인덱스와 값을 동시에 반환한다.
students = ['홍길동', '박찬호', '이용규', '박승철', '김지은']
students.append('김희철')
print(students)
# ['홍길동', '박찬호', '이용규', '박승철', '김지은', '김희철']
- list.append( 값 ) 으로 리스트의 맨 마지막에 값을 추가할 수 있다.
students = ['홍길동', '박찬호', '이용규', '박승철', '김지은']
students.insert(3, '김연아')
print(students)
# ['홍길동', '박찬호', '이용규', '김연아', '박승철', '김지은']
- list.insert(index, 값) 으로 index 위치에 값을 삽입할 수 있다. append의 경우는 맨 오른쪽에만 삽입
students = ['홍길동', '박찬호', '이용규', '박승철', '김지은']
students.pop()
print(students)
# ['홍길동', '박찬호', '이용규', '박승철']
students = ['홍길동', '박찬호', '이용규', '박승철', '김지은']
students.pop(3)
print(students)
# ['홍길동', '박찬호', '이용규', '김지은']
- list.pop() 으로 맨 마지막 값 삭제 가능
- list.pop(index) 으로 index 위치의 값 삭제 가능
students = ['홍길동', '박찬호', '이용규', '박승철', '김지은']
students.remove('홍길동')
print(students)
# ['박찬호', '이용규', '박승철', '김지은']
- list.remove(값) 로 해당 값 삭제 가능
students_1 = ['홍길동', '박찬호', '이용규', '박승철', '김지은']
students_2 = ['문성곤', '오세근']
students_1.extend(students_2)
print(students)
# ['홍길동', '박찬호', '이용규', '박승철', '김지은', '문성곤', '오세근']
result = students_1 + students_2
print(result)
# ['홍길동', '박찬호', '이용규', '박승철', '김지은', '문성곤', '오세근']
- list_1.extend(list_2) 혹은 list_1 + list_2 로 리스트(list)를 연결할 수 있다.
playerscore = [3, 6, 2, 5, 6, 7]
playerscore.sort()
print(playerscore)
# [2, 3, 5, 6, 6, 7]
playerscore.sore(reverse=True)
print(playerscore)
# [ 7, 6, 6, 5, 3, 2]
- list.sort() 아이템을 오름차순으로 정렬
- list.sort(reverse=True) 아이템을 내림차순으로 정렬
students_1 = ['홍길동', '박찬호', '이용규', '박승철', '김지은']
students_1.reverse()
print(students_1)
# ['김지은', '박승철', '이용규', '박찬호', '홍길동']
- list.reverse() 아이템을 역순으로 배열
students_1 = ['홍길동', '박찬호', '이용규', '박승철', '김지은']
students_1[1:4]
print(students)
# ['박찬호', '이용규', '박승철']
- list[start:end] 리스트 아이템 중 start번째 부터 end번째 이전까지 조회
students_1 = ['홍길동', '박찬호', '이용규', '박승철', '김지은']
students_1.index('박찬호')
# 1
- list.index(값) 값이 있는 인덱스를 반환
students_1 = ['홍길동', '박찬호', '이용규', '박승철', '김지은', '홍길동']
students_1.count('홍길동')
# 2
- list.count(값) 리스트 안 값의 개수를 세어 반환
students_1 = ['홍길동', '박찬호', '이용규', '박승철', '김지은']
del students_1[1]
print(students_1)
# ['홍길동', '이용규', '박승철', '김지은']
- del list[index] 리스트 값을 삭제하기
📍 튜플(tuple)
리스트처럼 배열을 담은 구조. 다만, 아이템 삭제, 수정 등 변경이 불가하다.
따라서 append(), 원소 재선언, pop() 이 불가하다.
extend()는 사용할 수 없고, tuple + tuple으로 연결 가능하다.
이 외의 내용은 리스트와 같이 작업할 수 있다.
students_1 = ('홍길동', '박찬호', '이용규', '박승철', '김지은')
students_1 = ('홍길동', '박찬호', '이용규', '박승철', '김지은')
'이용규' in students_1
# True
'김연아' in students_1
# False
- in, not in 을 통해 배열 안에 원소가 있는지 bool 값으로 반환