List

-문자열과 동일하게 슬라이싱 가능
-인덱스로 접근하여 값 수정 가능
-문자열과 동일하게 +(더하기)와 *정수(반복하기) 연산자 사용 가능
list(): 리스트 생성 (그냥 [요소1, 요소2,...] 형식으로도 생성 가능)

del 리스트명[idx1(:idx2)]: 인덱스 위치 값 삭제

리스트 함수

정렬 함수

sorted(리스트명):
-오름차순 정렬함수
-원본 리스트를 변경하지 않고 새로운 리스트 반환
-내림차순으로 정렬하고 싶을 때는 리스트명 뒤에 옵션으로 reverse = True 넣기

정렬 메서드

리스트명.sort():
-오름차순 정렬 메서드
-원본 리스트가 정렬되어 변경됨
-내림차순으로 정렬하고 싶을 때는 괄호 안에 옵션으로 reverse = True 넣기

리스트명.reverse(): 리스트의 요소를 기존의 역순으로 정렬

위치 찾기 메서드

리스트명.index(찾을 요소):
-리스트에 요소가 어디 있는지 찾아 위치 인덱스 반환 (중복된 요소 있으면 제일 앞의 위치 반환)
-리스트 내에 찾을 요소가 없다면 ValueError 발생

추가 / 삭제 메서드

리스트명.append(추가할 요소): 리스트 마지막에 요소 추가

리스트명.pop(idx):

  • 리스트 내 인덱스 위치에 해당하는 요소 삭제
    -인덱스가 없는 경우 리스트 마지막 요소 삭제

리스트명.remove(삭제할 요소): 리스트 내에서 특정 요소 삭제

리스트명.insert(idx, 삽입할 요소): 리스트 내 인덱스 해당 위치에 요소 삽입하기

리스트명.clear(): 리스트 내 모든 요소 삭제, 리스트 참조 메모리 위치는 변하지 않음

개수 세기 메서드

리스트명.count(요소): 리스트 내 같은 이름을 가진 요소 개수 세기

주의할 점: 원본 리스트를 변형시키는 메서드의 경우 print문과 같은 함수 안에서 바로 실행시키려 하면 오류가 난다. 꼭 대입해서 사용할 것!

.extend()와 .append()

리스트명.extend(): 리스트 마지막에 여러 요소 추가, 괄호 안에는 문자열 또는 리스트만 들어옴.

1) 기존 행에 요소 확장
ex) matrix = [[1, 2], [5, 6]] #2차원 리스트
matrix[0].extend([3, 4])
print(matrix) #[[1, 2, 3, 4], [5, 6]]

2) 다른 리스트를 확장하여 추가
ex) my_list = [1, 2, 3]
my_list.extend([4, 5, 6])
print(my_list) #[1, 2, 3, 4, 5, 6]

3) 문자열을 리스트에 확장하여 추가
ex) my_list = [a, b, c]
my_list.extend("def")
print(my_list) #[a, b, c, d, e, f]

.extend()와 .append()의 차이:
.append()의 괄호 안에 들어간 리스트는 리스트 전체가 하나의 요소로 기존 리스트에 들어가지만, .extend()의 괄호 안에 들어간 리스트는 리스트 내 각 요소가 분리되어 들어간다.

Tuple

리스트와 유사하지만 튜플에 저장된 값은 추가, 수정, 삭제할 수 없다.
ex) append()와 같은 기능을 사용하려고 하면 오류가 발생한다!

<튜플 생성 예시>
t1 = (1,) # 요소가 하나만 있을 때도 ','를 표시해 주어야 한다!
t2 = 2, 3, 4 #()를 생략할 수도 있다.

Set

-중복을 허용하지 않는 자료형(동일힌 값을 제거한다), 순서가 중요치 않다.
(수학에서의 집합과 유사한 개념)
-{}와 set()을 이용해 생성
-set은 요소를 추가, 삭제하는 것이 가능하다.

Set의 메서드

s1 = {1, 2, 3, 4}

s1.add(추가할 요소): 추가

s1.update([추가할 요소들이 담긴 리스트]): 여러 요소 업데이트, 중복 값은 자동으로 삭제

s1.remove(삭제할 요소): 원하는 요소 삭제 (삭제할 요소가 없다면 KeyError 발생)

s1.discard(삭제할 요소): 원하는 요소 삭제 (삭제할 요소가 없다면 아무 일도 안 일어남)

s1.clear(): 모든 요소 삭제, 빈 set만 남음

Set의 연산

합집합 : | 또는 union() 메서드
ex)
s3 = s1 | s2
s3 = s1.union(s2)

교집합 : & 또는 intersection() 메서드
ex)
s3 = s1 & s2
s3 = s1.intersection(s2)

차집합 : - 또는 difference() 메서드
ex)
s3 = s1 - s2
s3 = s1.difference(s2)

Dictionary

-딕셔너리 변수 = {키1: 값1, 키2:, 값2....} => Key와 Value를 쌍으로 요소를 갖는 자료형
-키는 하나의 딕셔너리에 중복되어 사용될 수 없음(고유해야함)
-값의 변경, 사용 및 추가는 키워드로 접근 가능
-값 삭제: del 딕셔너리명[키워드]

Dictionary의 메서드

딕셔너리명.get(key): 값 사용, 키가 존재하지 않을 때 기본값을 반환하며 오류를 방지

딕셔너리명.update({key:value, key2: value2,...}): 새로운 키-값 쌍을 추가하거나 기존 키의 값을 업데이트

딕셔너리명.keys(): 딕셔너리의 모든 키를 반환

딕셔너리명.values(): 딕셔너리의 모든 값을 반환

딕셔너리명.items(): 딕셔너리의 (키, 값) 쌍을 튜플 형태로 반환

딕셔너리명.clear(): 딕셔너리 내용 모두 지우기

내장함수

print()와 같이 파이썬이 미리 지정해둔 함수들

sum(식별자명): 숫자 시퀀스의 모든 요소를 더해 합계를 반환
(시퀀스: 문자열, 리스트, 튜플, range() 등)

max(식별자명): 최댓값을 반환하는 함수
min(식별자명): 최솟값을 반환하는 함수

len(식별자명): 길이를 반환하는 함수

zip(식별자1, 식별자2):
-여러 시퀀스를 병렬로 묶어주는 함수
-각 시퀀스의 요소를 튜플로 묶어 반환하며, 가장 짧은 시퀀스에 맞춰 종료

0개의 댓글