반응형
+ 튜플 (tuple) ; immutable! 리스트와 같으나 변경불가.
() 를 사용한다. 리스트와 비슷하나, 튜플은 값을 변경할 수 없다.
t1=()
t2=(1,) # 주의!!! 원소가 한 개인 경우 반드시 뒤에 ,를 써줘야 한다. 쓰지 않으면 () 연산자로 인식.
a,b = 10,20 # 이것도 튜플을 통한 복수 데이터 할당의 응용이다.
b,a = a,b # 이렇게 값을 동시에 변경할 수도 있다. swap이 쉽다.
t3=(1,2,3)
t4=1,2,3,4
위와 같이 사용
매크로 값 할당 처럼 사용 가능.
(MON, TUE, WED) = range(3)
MON=0
TUE=1
WED=2
-튜플 연산
+는 데이터 추가. *는 반복.
tuples=('a','b','c')
tuples+('d',e','f') # a b c d e f 가 된다.
tuples*3 # a b c a b c a b c가 된다.
+Set ; 집합.{}
노드들의 순서 없음. 중복은 추가되지 않음.
a_set = { 1 }
-list를 set으로 변환.
a_set=set(a_list)
a_set=set() ; empty set
a_set.add(4) ; item add
len(a_set) ; item count
a_set.update( {4,5,6} ) ; items add (중복은 추가되지 않음.)
a_set.update( [10,20,30]) ; items add (중복은 추가되지 않음.)
a_set.discard( 10 ) ; 10을 삭제함. (없어도 에러 안남)
a_set.remove(10) ; 10을 삭제함. (없으면 에러. KeyError)
a_set.clear()
30 in a_set ; check (T/F) exist
a_set.union(b_set) ; union set
a_set.intersection(b_set) ; intersection
a_set.difference(b_set) ; diff. A-B
a_set.symmetric_difference(b_set) ; diff. (A+B)-(A intersect B)
a_set.issubset(b_set) ; T/F check A<B
b_set.isupperset(a_set) ; T/F check B>A
+ Dictionary
{key:value,...}를 사용. json과 비슷.
unordered. key-value pairs.
dic={123:456, 3.14:11.2, (1,3):(3,1), 'abc':'def', 'list':{1,2,3}, 'dict':{1:2, 3:4}}
dic={'name':'pey', 'phone':'111111','birth':'1111'}
dic['name']
주의!
a={1:'a',2:'b'}
a[1]='a' 이다. Dictionary에서 a[1]에서 1은 인덱스가 아니고 Key다.!!
-사전에 추가 방법
a['name2']='test' ; 없으면 추가된다!!!. 있으면 업데이트된다.
-삭제는 del을 사용!
del a['name2']
a.keys() ; key 명으로된 list
a.clear() ; 모두 삭제
a.get('name') ; 키로 값 얻기 ; a['name'] 과 동일하다.
-객체가 None 또는 empty이면 false로 취급.
-키가 없으면 KeyError 발생
a['akaka']
-사전 키 존재! 여부 검사 (in, has_key)
'name' in dic
True
'job' in dic
False
if 'keyname' in dic:
use...
or
if dict.has_key('keyname')==1:
use...
or
value=dic.get('keyname', 0) # 키가 없으면 디폴트값으로 설정함.!! ( 널체크. null, None. )
+ dictionary 생성
import glob
import os
metadata_dict = { f:os.stat(f) for f in glob.glob('*test*.py') }
metadata_dict[0]
metadata_dict['atest01.py'].st_size
list(metadata_dict.keys())
+ key, value 뒤집기
{ value:key for key, value in a_dict.items() }
+ key, value 검색
for k, v in dictA.items():
print(k,v)
for (k,v) in dictA.items(): 상동
for k in dictA:
print(k, dictA[k])
'Python' 카테고리의 다른 글
Python 외부 모듈사용.time,string,random, try except (0) | 2018.04.09 |
---|---|
Python 강좌7 클래스 (0) | 2018.03.27 |
Python 강좌5 List (0) | 2018.03.20 |
Python 강좌4 정규식 regular expression (0) | 2018.03.19 |
Python 강좌3 자료형. 수/문자열 (1) | 2018.03.16 |