데이터 저장타입
1. list()
>>> data = ['a', 'b']
>>> data = list('ab')
위 2가지 방식으로 초기화
(1) offset으로 값을 얻어올 수 있다.
>>> print data[1]
b
(2) .append는 가장 마지막 인덱스 다음에 데이터를 추가
>>> data.append('c')
>>> print data
['a', 'b', 'c']
(3) .insert는 원하는 인덱스에 데이터를 추가, 나머지 데이터는 뒤로 한 칸씩 이동
>>> data.insert(1, 'c')
>>> print data
['a', 'c', 'b']
(4) del [리스트이름[인덱스]] 는 해당 인덱스 데이터 삭제, -1은 뒤에서 첫 번째, 즉 맨 뒤 데이터를 의미
>>> del data[-1]
>>> print data
['a']
(5) 데이터로 인덱스 찾기
>>> print data.index('a')
0
(6) 문자열 결합하기
>>> print '/'.join(data)
>>> a/b
>>> print ''.join(data)
>>> ab
(7) 정렬하기
>>> data.sort()
>>> print data
['a', 'b']
(8) 원래 리스트 그대로, 새로운 리스트에 sort하기
>>> second = sorted(data)
>>> print second
['a', 'b']
(9) 리스트의 개수
>>> print len(data)
2
2. tuple()
리스트와 달리 변하지 않는다.
즉, 추가/수정/삭제 불가
그러므로 insert(), append() 등의 함수가 없다.
리스트는 대괄호로 생성, 튜플은 소괄호로 생성
>>> tutu = ('apple', 'banana')
>>> print tutu
('apple', 'banana')
(1) 튜플 언패킹 = 한 번에 여러 개의 변수 할당
>>> a, b, c = tutu
>>> print a
('apple', 'banana')>>> print b
('apple', 'banana')
>>> print c
('apple', 'banana')
(2) 교환
>>> passwd = 'apple'
>>> identi = 'banana'
>>> passwd, identi = identi, passwd
>>> print passwd
banana
3. dictionary = dict(딕트)
dictionary는 0, 1, 2 등의 순서로 따지지 않고 offset으로 항목을 선택할 수 없다.
이에 값[value]에 해당하는 키[key]를 지정해준다.
그래서 키를 이용하여 값을 찾는다.
키는 대체로 문자열이지만 어떤 타입이 될 수도 있다.
단 값을 찾는 키는 유일해야 한다.
만약 겹친다면 뒤에 입력한 키로 덮어쓰여진다.
다른 언어에서는 연관배열, 연상배열, 해시, 해시맵 이라 부른다.
리스트는 대괄호로 생성, 튜플은 소괄호로 생성, 딕셔너리는 중괄호와 : 로 생성
dic = {
'a' : 'apple',
'b' : 'banana',
'c' : 'cat',
'd' : 'data'
}
dics = {
'd' : 'destination',
'e' : 'effect',
'f' : 'fail'
}
(1) a키의 값은 apple, b키의 값은 banana, c키의 값은 cat, d키의 값은 data
>>> print dic
{'a' : 'apple, 'b' : 'banana', 'c' : 'cat', 'd' : 'data'}
#순서는 b, c, d 순서대로 나오지 않을 수 있다. 이미 말했듯이 순서대로 저장되는 것이 아니기 때문이다.
(2) a키의 값을 구하려면
>>> print dic['a']
apple
(3) a키의 값을 수정하려면
>>> dic['a'] = 'attack'
>>> print dic['a']
attack
(4) 특정 키와 값을 삭제
>>> del dic['a']
{'b' : 'banana', 'c' : 'cat', 'd' : 'data'}
(5) dictionarty 전체 삭제
>>> dic.clear()
(6) 모든 키 얻기
>>> print dic.keys()
['a', 'c', 'b', 'd']
(7) 모든 값 얻기
>>> print dic.values()
['apple', 'cat', 'banana', 'data']
(8) 모든 쌍의 키-값 얻기
>>> print dic.items()
[('a', 'apple), ('c', 'cat'), ('b', 'banana'), ('d', 'data')]
(9) 서로 다른 dictionary를 합치려면 ... 'd'키의 경우 겹치기 때문에 나중에 입력한 키로 덮어쓰여진다.
>>> dic.update(dics)
>>> print dic
{ 'a' : 'apple, 'b' : 'banana', 'c' : 'cat', 'd' = 'destination', 'e' = 'effect', 'f' = 'fail'}
4. set()
set은 값은 버리고 키만 남은 dictionary와 같다.
dictionary와 마찬가지로 키는 유일해야하며, 어떤 것이 존재하는지 여부만 판단하기 위해 set을 사용한다.
리스트는 list() 함수나 대괄호로 생성, 튜플은 소괄호로 생성,
딕셔너리는 중괄호와 : 로 생성, 셋은 set() 함수나 중괄호로 생성
>>> number = {0, 2, 4} #중괄호로만 생성되었기 때문에 set이다.
>>> figure = {2, 4, 7}
>>> print number #출력 결과를 보면 순서대로 되어있지 않다. dictionary와 같은 이유이다.
{2, 0, 4}
(1) list를 set으로 만들기
>>> setting = set( ['apple', 'banana', 'apple'])
>>> print setting
set (['apple', 'banana']) # 중복된 키는 존재 불가 (2) tuple을 set으로 만들기
>>> setting = set( {'apple', 'banana', 'apple'}) >>> print setting set (['apple', 'banana'])
(3) dictionary을 set으로 만들기
>>> setting = set( ['apple' : 'one', 'banana' : 'two', 'apple' : 'three'])
>>> print setting
set (['apple', 'banana'])
(4) intersection(교집합)
>>> print number & figure
set([2, 4])
>>> number.intersection(figure)
set([2, 4])
(5) union(합집합)
>>> print number | figure
set([0, 2, 4, 7])
>>> number.union(figure)
set([0, 2, 4, 7])
(6) difference(차집합)
>>> print number - figure
set([0])
>>> number.difference(figure)
set([0])
(7) exclusive(대칭차집합 : 한 쪽에만 있는 경우 , 즉 둘 다 있거나 아에 없는 경우 제외, xor연산)
>>> print number ^ figure
set([0, 7])
>>> number.symmetric_difference(figure)
set([0, 7])
(8) subset(부분집합)
>>> print number <= figure
false
>>> number.issubset(figure)
false
>>> number.issubset(number)
ture # 자기자신도 부분집합에 포함된다.
--- 초기화 ---
>>> number = {0, 2, 4}
>>> figure = {2, 4}
(9) proper subset(진부분집합)
>>> print number > figure # figure가 number의 부분집합인가?
true
'Programming Language > Python' 카테고리의 다른 글
문자열 길이 : len() (0) | 2018.07.23 |
---|---|
문자열 slice (0) | 2018.07.23 |
for문 - 3 (0) | 2018.05.23 |
for문 - 2 (0) | 2018.05.23 |
for문 - 1 (0) | 2018.05.22 |
댓글