출처 : 두근두근 파이썬, 파이썬 for Beginner
-------
개발 블로그를 티스토리로 옮기며 기존의 네이버 블로그에 작성한 내용을 그대로 옮겼습니다.
https://blog.naver.com/0yeonjae2/222594248504
-------
c/c++나 자바같은 프로그래밍 언어에는 리스트가 없고 배열을 사용한다. 리스트는 정수, 문자열, 실수 등 서로 다른 데이터형도 하나로 묶을 수 있지만, 배열은 동일한 데이터형만 묶을 수 있다.
1. 리스트
여러 개의 데이터를 하나로 묶어서 저장하는 것이 필수적인 경우에 사용한다.
1) 리스트 생성 및 내용 추가
리스트명 = [] # 공백 리스트 생성
리스트명.append("추가할 내용") # 내용 추가
리스트명.insert(삽입할 위치 인덱스, "추가할 내용") # 번호 위치에 내용 추가
2) 객체
파이썬에서 객체는 관련된 변수와 함수를 묶은 것이다.
파이썬에서 리스트는 객체이므로 객체 안에 있는 무언가를 사용할 때는 객체의 이름을 쓰고 점(.)을 붙인 후 함수의 이름을 적는다.
3) 리스트 항목 접근하기
listA = ["ㄱ", "ㄴ","ㄷ"]
listA[0] == "ㄱ"
listA[1] == "ㄴ"
list[2] == "ㄷ"
- 슬라이싱
[start : stop : step]
start부터 stop까지 step만큼 건너뛰며 출력
4) 리스트 항목 변경하기
>>>listA = ["ㄱ", "ㄴ","ㄷ"]
>>>listA[0] = "ㄹ"
>>>print(listA)
["ㄹ", "ㄴ", "ㄷ"]
5) 리스트 복사하기
import copy
listA = ["ㄱ", "ㄴ", "ㄷ"]
listB = copy.copy(listA)
혹은
listC = ["ㄹ", "ㅁ", "ㅂ"]
listD = listC[:]
6) 리스트 항목 삭제하기
(1) 특정 내용 삭제
① remove
listA = ["ㄱ", "ㄴ", "ㄷ"]
listA.remove("ㄴ")
# listA == ["ㄱ", "ㄷ"]
② del : 인덱스를 이용해 항목 삭제
listB = [2,3,4]
del listB[0]
# listB == [3,4]
③ pop : 리스트에서 마지막 항목 삭제
listC = [1,2,3,4]
listC.pop()
# listC == [1,2,3]
(2) 특정 범위 삭제
listA = [1, 2, 3, 4,5]
list[1:4] = []
# 2부터 4까지 삭제된다.
(3) 리스트 자체 삭제
listA = [1,2,3,4]
listA = []
# 텅 빈 listA라는 이름을 가진 리스트 존재
listB = [1,2,3,4]
listB = None
7) 항목이 리스트 안에 있는지 확인
listA = [1,2,3,4,5]
if 4 in listA:
실행 내용
8) 리스트 내 요소의 개수
len() : 리스트 요소의 개수를 정수형(int)으로 반환한다.
9) 리스트 탐색하기
index() : () 안에 내용을 입력하면 인덱스를 반환한다.
10) 리스트 관련 함수
함수
|
설명
|
사용법
|
append()
|
리스트 맨 뒤에 항목을 추가한다.
|
리스트명.append(값)
|
pop()
|
리스트 맨 뒤의 항목을 뺀다.
|
리스트명.pop()
|
sort()
|
리스트의 항목을 정렬한다.
|
리스트명.sort()
|
reverse()
|
리스트의 항목을 역순으로 정렬한다.
|
리스트명.reverse()
|
index()
|
지정된 값을 찾아 해당 위치를 반환한다.
|
리스트명.index(찾을값)
|
insert()
|
지정된 위치에 값을 삽입한다.
|
리스트명.insert(위치, 값)
|
remove()
|
리스트에서 지정한 값을 삭제한다.
지정한 값이 여러 개면 첫 번째 값만 지운다. |
리스트명.remove(지울 값)
|
extend()
|
리스트 뒤에 리스트를 추가한다.
|
리스트명.extend(추가할 리스트)
|
count()
|
리스트에서 해당 값의 개수를 센다.
|
리스트명.count(찾을값)
|
clear()
|
리스트의 내용을 모두 지운다.
|
리스트명.clear()
|
del()
|
리스트에서 해당 위치의 항목을 삭제한다.
|
del(리스트명[위치])
|
len()
|
리스트에 포함된 전체 항목의 개수를 센다.
|
len(리스트명)
|
copy()
|
리스트의 내용을 새로운 리스트에 복사한다.
|
새리스트 = 리스트명.copy()
|
sorted()
|
리스트의 항목을 정렬해서 새로운 리스트에 대입한다.
|
새리스트 = sorted(리스트)
|
11) zip() 함수
- 동시에 여러 리스트에 접근하기
12) 리스트의 복사
- 얕은 복사 ; Call by reference (참조에 의한 호출)
기존의 리스트와 새로운 리스트가 동일한 메모리 공간을 공유하므로 새로운 리스트나 기존의 리스트에서 변화가 생기면 다른 리스트에도 적용된다.
새리스트 = 기존리스트
두 리스트의 내용이 동일한 것을 확인 가능
- 깊은 복사 ; Call by value (값에 의한 호출)
메모리의 공간을 복사하여 리스트를 만드므로 새로운 리스트나 기존의 리스트에서 변화가 생겨도 다른 리스트에 적용되지 않는다.
새리스트 = 기존리스트[:]
두 리스트의 내용이 다른 것을 확인 가능
2. 튜플
1) 튜플
- 튜플은 소괄호()를 이용해 생성한다.
- 값을 수정할 수 없으며, 읽기만 가능해 읽기 전용 자료를 저장할 때 사용한다.
- 소괄호를 생략할 수 있으며, 항목이 하나인 튜플은 뒤에 쉼표를 붙인다.
ex) t1 = (10,20,30) t2 = 10,20,30 t3= (10,) t4 = 10,
2) 튜플 자체 삭제
del(튜플 이름)
3) 튜플 접근
- 항목 접근 : 튜플이름[인덱스]
- 범위 접근 : 튜플이름[범위]
4) 튜플의 연산
- 튜플의 덧셈, 곱셈 연산
ex)
t1 = (1,2)
t2 = ("A", "B")
t1 + t2 # (1,2,"A","B")
t1 * 2 # (1,2,1,2)
5) 튜플의 항목 변경
: 튜플 자체는 항목 변경이 불가하므로 튜플을 리스트로 변환해 내용을 수정하고 수정한 리스트를 다시 튜플로 변환한다.
(튜플 -> 리스트 -> 튜플 ; 간접적인 방식)
tupleA = (10,20,30,40)
listA = list(tupleA)
listA.append(50)
tupleA = tuple(listA)
3. 딕셔너리
딕셔너리는 리스트와 같이 값을 저장하는 방법으로 값(value)과 키(key)가 있다.
ex) 딕셔너리이름 = {키1:값1, 키2:값2}
- 키와 값은 정해진 규정이 없다. (사용자가 지정하면 된다.)
- 딕셔너리는 순서가 없어 생성한 순서대로 딕셔너리가 구성된다는 보장이 없다.
1) 딕셔너리의 생성
딕셔너리 이름 = {} # 공백 딕셔너리 생성
딕셔너리 이름[키] = 값 # 내용 추가
student = {'학년' : 1, '이름' : '최연재'}
student['학과'] = '컴퓨터공학과'
# student == {'학년' : 1, '이름' : '최연재', '학과' : '컴퓨터공학과'}
2) 딕셔너리에서 탐색
- 키를 가지고 값을 찾기
ex) print(student['학년']) # 1
- 딕셔너리명.get(키) 함수를 이용해 키로 값에 접근
ex) student.get('이름') # '최연재'
딕셔너리명[키]와 딕셔너리명.get(키)의 결과는 같다.
차이점은 딕셔너리명[키]는 존재하지 않는 키를 호출하면 에러가 나지만 딕셔너리명.get(키)는 존재하지 않는 키를 호출하면 아무것도 반환하지 않는다.
3) 딕셔너리의 모든 키와 값 출력하기
딕셔너리명.keys()는 딕셔너리의 모든 키를 반환한다.
딕셔너리명.values()는 딕셔너리의 모든 값을 반환한다.
딕셔너리명.values() 함수는 딕셔너리의 모든 값을 리스트로 만들어 반환한다.
dict_keys나 dict_values 없이 출력하려면 리스트를 이용한다. -> list(딕셔너리명.keys())
4) 딕셔너리의 수정
딕셔너리명[값을 변경할 키] = 변경할 값
5) 딕셔너리 내용 삭제
del(딕셔너리명[삭제할 키])
6) 딕셔너리에 동일한 키가 있는 경우
딕셔너리의 키는 유일해야 하므로 동일한 키를 갖는 딕셔너리를 생성하는 것이 아니라 마지막에 있는 키가 적용된다.
ex)
student = {'학년':1, '이름':'최연재', '학과':'컴퓨터공학과', '학년':2}
# 딕셔너리를 출력하면 {'학년':2, '이름':'최연재', '학과':'컴퓨터공학과'} 가 출력된다.
7) 딕셔너리를 튜플 형태로 구하기
딕셔너리명.items() 함수
8) 딕셔너리에 해당 키가 있는지 확인
키 이름 in 딕셔너리명
키가 존재하면 True, 없으면 False를 반환한다.
4. 세트
파이썬 2.3부터 지원하기 시작한 자료형이다.
- 집합에 관련된 것을 쉽게 처리하기 위해 만든 자료형이다.
- 중복을 허용하지 않으며, 순서가 없다. 인덱싱으로 값을 얻을 수 없다.
- 인덱싱을 사용하려면 리스트나 튜플로 변환 후 사용해야 한다.
1) 세트의 생성
setA = {}
setB = set()
2) 집합
- 교집합
setA & setB
setA.intersection(setB)
- 합집합
setA | setB
setA.union(setB)
- 차집합
setA - setB
setA.difference(setB)
- 대칭차집합
setA ^ setB
setA.symmetric_difference(setB)
'전공과목 정리 > 프로그래밍언어 (Python, C++)' 카테고리의 다른 글
[파이썬프로그래밍🐍] tkinter (0) | 2022.01.29 |
---|---|
[파이썬프로그래밍🐍] 함수, 파일 (0) | 2022.01.29 |
[파이썬프로그래밍🐍] 조건문, 반복문 (0) | 2022.01.29 |
[파이썬프로그래밍🐍] 변수, 계산, 자료형 (0) | 2022.01.29 |