1. 리스트
: 여러 개의 값을 하나의 변수로 관리하기 위한 기능. 순서대로 정리된 항목을 담음
대괄호로 감싸주고 각 요소는 쉼표로 구분. 리스트명 = [요소1, 요소2, 요소3, ...]
요소값으로는 비어있거나 숫자, 문자열, 숫자와 문자열, 리스트 자체가 올 수 있다.(어떠한 자료형이든 포함 가능)
- 리스트 인덱싱
: 문자열처럼 인덱싱 적용 가능
li = [1, 2, 3, 4, 5]
print(li[0]) #1 출력
print(li[1]+li[4]) #7 출력(2+5)
print(li[-2]) #4 출력
a = [1, 2, 3, ['a', 'b', 'c']]
print(a[3]) #['a', 'b', 'c']
print(a[-1]) #['a', 'b', 'c']
print(a[3][0]) #'a'
- 리스트 슬라이싱
: 문자열처럼 슬라이싱 적용 가능
print(li[n:m]) #인덱스 n부터 (m-1)까지 출력
li = [1, 2, 3, 4, 5]
print(li[:3]) #[1, 2, 3] 출력
print(li[3:]) #[4, 5] 출력
print(li[2:4]) #[3, 4] 출력
a = [1, 2, 3, ['a', 'b', 'c'], 4, 5]
print(a[2:5]) #[2, ['a', 'b', 'c'], 4] 출력
print(a[3][:2]) #['a', 'b'] 출력
- 리스트 더하기
: 리스트도 +로 더하고, *로 반복할 수 있다.
숫자와 문자열이 더해지면 형 오류(Type Error)가 발생하므로 형변환을 시켜줘야 한다.
a = [1, 2, 3]
b = [4, 5, 6]
print(a+b) #[1, 2, 3, 4, 5, 6]출력
print(a*3) #리스트 반복 #[1, 2, 3, 1, 2, 3, 1, 2, 3]
print(len(a)) #리스트 길이(요소 개수) 3 출력
print(str(a[2]) + 'hi') # 3hi 출력
- 리스트 수정
listex = [‘a’, ‘b’, ‘c’]
listex[0] = ‘A’
#[‘A’, ‘b’, ‘c’] 출력
- 리스트 추가
listex.append(‘e’) #리스트의 맨 뒤에 추가 [‘A’, ‘b’, ‘c’, ‘e’]
listex.insert(3, ‘d’) #리스트의 3번째 자리에 추가 [‘A’, ‘b’, ‘c’, ‘d’, ‘e’]
- 리스트 삭제
① del 객체
del listex[1] #지정 인덱스 자리의 값이 삭제됨 ['A', 'c', 'd', 'e'] 출력
del listex[1:] #['A']
② pop(인덱스)
liex = ['a', 'b', 'c']
popped = liex.pop() #pop()은 가장 마지막 값이 삭제됨(stack구조)
print(liex) #['a', ‘b’] 출력
print(popped) #마지막에 넣은 값 c 출력
popped1 = liex.pop(1) #pop(인덱스)
print(popped1) # b 출력
print(liex) #['a'] 출력
③ remove(데이터 값)
liex2 = ['a', 'b', 'c', 'a']
liex2.remove('a') #인덱스는 적을 수 없고 데이터 값을 기재해줘야 함 [‘b’, 'c', 'a']
- 기타 리스트 관련 함수
① append(x) : 리스트의 맨 마지막에 요소 x 추가
② sort() : 변수명.sort() 리스트를 순서대로 정렬
sort(reverse=True) : 역순으로 출력
③ sorted() : 리스트 임시 정렬(출력되는 동안만 정렬)
④ reverse(변수명) : 리스트 순서 뒤집기
순서대로 정렬 후 역순으로 정렬하는 것이 아닌 현재 리스트를 거꾸로 뒤집는다.
⑤ index(x) : x위치의 값 반환
⑥ insert(a, b) : a번째 위치에 b를 삽입
⑦ remove(x) : 리스트에서 첫 번째로 나오는 x를 삭제. 이후에 나오는 x는 삭제되지 않음
⑧ pop() : 맨 마지막 요소를 반환하고 삭제
⑨ count(x) : 리스트 내의 x 개수 반환
⑩ extend(x) : 리스트 확장. +와 같은 기능.
+는 확장 전/후의 주소값이 다르고, extend는 확장 전/후의 주소값이 같다.
- 기타
비어있는 리스트 : m = [] 또는 m = list()
2. 튜플
: 리스트와 비슷([ ]대신 ( )사용) 수정/삭제 불가능해 비정적인 객체를 담는데 사용
튜플 인덱싱, 슬라이싱, 더하기(+), 곱하기(*), 길이 구하기(len()) 가능
tuple1 = (1, 2, 3)
tuple2 = 1, 2, 3 #소괄호를 사용하지 않아도 튜플이 된다.
tuple3 = (‘a’, ‘b’, (1, 2, 3))
tuple4 = (1,) 요소값을 하나만 적을때는 요소 뒤에 ,를 붙여줘야 한다.
3. 딕셔너리
: key와 value로 구성되는 자료구조. key는 중복X, 리스트 사용X. 튜플 사용O
{Key1:Value1, Key2:Value2, Key3:Value3, ...}형태
요소값을 얻으려면 key값으로 value를 출력하는 방법뿐이다. (key 값을 기준으로 출력) 딕셔너리변수명[Key]
dic1 = {‘name’:’tom’, ‘age’:’11’}
print(dic1[‘name’]) # tom 출력
dic2 = {‘num’:[1, 2, 3, 4]} # value에 리스트가 올 수 있다
- 딕셔너리 값 추가
dic1[‘study’] = ‘python’ # {‘name’:’tom’, ‘age’:’11’, ‘study’:’python’}
- 딕셔너리 값 삭제
del dic1[‘name’] # {‘age’:’11’, ‘study’:’python’}
- 딕셔너리 관련 함수들
① keys(): key 값들만 전부 출력
② values(): value 값들만 전부 출력
③ items(): key, value 값들 전부 출력(튜플, 리스트 형태로 반환)
④ clear(): key:value쌍 모두 지우기
⑤ get(x): 키가 x인 value를 반환
존재하지 않는 키 nokey값을 가져오려 하는 경우 None값 반환
(a[x]를 사용할 경우에는 key오류 발생)
⑥ x in dic1
: dic1 안에 키가 x인 것이 존재하면 True,
x값에 value값을 입력하거나 존재하지 않으면 False 반환
print(dic1.keys())
# dict_keys(['age', 'study']) 출력
print(dic1.values())
# dict_values(['11', 'python']) 출력
print(dic1.items())
# dict_items([('age', '11'), ('study', 'python')]) 출력
※ 위 처럼 dict_keys, dict_values, dic_items객체는 리스트를 사용하는 것과 차이가 없지만,
리스트 고유의 append, insert, pop, remove, sort함수는 수행할 수 없다.
4. 집합
: 중복X, 순서X. print를 사용해 출력하면 자료구조와 다르게 출력된다. = 중복제거에 사용
s2 = set("Hello")
print(s2) #{'H', 'o', 'l', 'e'} 출력. 중복X, 순서X
s3 = set([4, 5, 6])
print(s3) # {4, 5, 6}출력
#print(s3[0]) # 인덱싱으로 값을 얻을 수 없음
l3 = list(s3) # list로 바꾸는 함수를 이용
print(l3[0]) # 순차적인 접근은 가능
- 교집합 &, intersection()
s1 = set([1, 2, 3, 4, 5, 6])
s2 = set([4, 5, 6, 7, 8, 9])
print(s1 & s2)
print(s1.intersection(s2))
# {4, 5, 6}
- 합집합 |, union()
print(s1 | s2)
print(s1.union(s2))
#{1, 2, 3, 4, 5, 6, 7, 8, 9}
- 차집합 -, defference()
print(s1 - s2)
print(s1.difference(s2))
# {1, 2, 3}
- 집합 관련함수
① add(x): 값 x를 1개 추가하기
② update(x): 여러 개의 값을 추가할 때 사용. x는 리스트
③ remove(x): x요소를 제거한다
+) 불자료형
: 참/거짓을 나타내는 자료형이다. type()을 사용해 bool로 지정된 것을 확인할 수 있다.
#리스트의 마지막 값을 하나씩 꺼냄.
#리스트 안에 요소가 존재하는 한 True, 더이상 없으면 False가 되어 while문 종료
a = [1, 2, 3, 4]
while a:
a.pop()
+) 변수_자료형의 값을 저장하는 공간
#변수a는 [1, 2, 3]리스트가 저장된 메모리의 주소를 가리킨다.
a=[1, 2, 3]
id()
: 변수가 가리키고있는 객체의 주소값을 반환하는 내장함수.
- 리스트 복사
: 리스트를 참조하는 변수가 추가됨.
주소값이 동일 = 가리키는 대상이 동일 = 하나가 바뀌면 다른 하나도 같이 바뀐다.
※ 다른 주소를 가리키도록 만드는 방법
① [:]
② copy모듈 사용
a = [1, 2, 3]
b = a[:] #리스트 a의 처음 요소부터 끝요소까지 슬라이싱해서 b에 저장
from copy import copy
c = copy(a)
c is a # False
'dev > Python' 카테고리의 다른 글
[Python]파일 읽고 쓰기 (0) | 2022.01.22 |
---|---|
[Python]함수 - def / lambda (0) | 2022.01.22 |
[Python]제어문 - if / while / for (0) | 2022.01.21 |
[Python]자료형(1) - 숫자/문자열 (0) | 2022.01.20 |
[Python]시작하기 (0) | 2022.01.18 |