IT recording...
[Python] 파이썬 기본 문법 정리 - List, Tuple, Dictionary, Set 본문
C,C++,JAVA만 할 줄 알았던 나는 요즘 대세라는 Python의 문법을 정리하려 한다.
배우다 보니 대박이다
1. LIST
- 배열과 비슷, 생성된 후에 변경 가능하다 (mutable)
1)
a = ['korea','canada',1,23,[34,56]]
print(a)
b = 'hello world'
print(list(b))
print(b.split())
(출력)
> ['korea', 'canada', 1, 23, [34, 56]]
> ['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']
> ['hello', 'world']
2) List Slicing
a = [1,2,3,4,5,6,7,8]
print(a[4:7]) #7은 포함 X
print(a[:7]) # 0~6
print(a[3:]) # 3~8
print(a[:]) #1~8
print(a[1:7:3]) #마지막 : n개씩 건너뛰어라
(출력)
> [5, 6, 7]
> [1, 2, 3, 4, 5, 6, 7]
> [4, 5, 6, 7, 8]
> [1, 2, 3, 4, 5, 6, 7, 8]
> [2, 5]
3) List함수
- append(value) : list끝에 항목 추가
- extend(list) : 리스트에 리스트 연장 (+=으로 사용 가능)
- insert(index,value) : 인덱스에 값 삽입 가능
#===================================
a = [1,2,3,4,5]
a.append(10)
print(a)
#===================================
a = [1,2,3,4]
b = [5,6,7,8,9]
a.append(b) #리스트 b자체가 추가됨
print(a)
a = [1,2,3,4]
b = [5,6,7,8,9]
a.extend(b)
print(a)
# extend 대신 += 사용 가능
a = [1,2,3,4]
b = [5,6,7,8,9]
a += b
print(a)
#===================================
a.insert(3,'a')
print(a)
(출력)
> [1, 2, 3, 4, 5, 10]
> [1, 2, 3, 4, [5, 6, 7, 8, 9]]
> [1, 2, 3, 4, 5, 6, 7, 8, 9]
> [1, 2, 3, 4, 5, 6, 7, 8, 9]
> [1, 2, 'a', 4, 5, 6, 7, 8, 9]
- remove(value) : 값으로 삭제
- pop(index) : 인덱스로 삭제 + 반환
- index(value) : 인덱스 반환
#======================================
a = [1,2,3,4,5,6]
a.remove(3) #value로 값 삭제. index아님
print(a)
#======================================
b = a.pop(1) #index로 삭제
print(b)
#======================================
print(a)
c = a.index(5) #value를 넣어서 인덱스 반환
print(c)
(출력)
> [1, 2, 4, 5, 6]
> 2
> [1, 4, 5, 6]
> 2
- value in [list] : value가 list에 존재하는지 반환
- sort(reverse=True) : 리스트 원본 정렬
- sorted(list) : 리스트 복사본 정렬 후 반환
#=======================================================
a = [1,2,3,4,5,10]
b = 7
c = b in a #b값이 a에 있니 없니
print(c)
#=======================================================
a = [9,10,7,19,1,2,20,32,7,8,5]
#1
a.sort(reverse=True) #reverse = True를 통해 정렬 가능
#2
b = sorted(a)
print(a)
(출력)
> False
> [32, 20, 19, 10, 9, 8, 7, 7, 5, 2, 1]
2. Tuple
- 배열과 같지만, 생성 후 변경 불가능
- 여러 변수 한번에 초기화 시 사용
- 여러 값 리턴 시 사용
#튜플 선언
a = (100,200)
print(type(a))
#한번에 변수 초기화시 사용
b,c,d,e = 1,2,3,4
print(b,c,d,e)
print(type(b))
#튜플로 SWAP 간단히 가능
a,b = 5,4
a,b = b,a
print(a,b)
(출력)
> <class 'tuple'>
> 1 2 3 4
> <class 'int'>
> 4 5
3. Dictionary
- Key, Value를 가짐, 인덱스 없음
1) 초기화, 병합
#{key:value,...}
a = {'korea':'seoul','canada':'ottawa','usa':'washington'}
print(a)
print(a['korea']) #키로 value접근 가능
#================================================
# update(dict) --> 중복시 b값이 오버라이트 됨
a = {'a':1,'b':2, 'c':3}
b = {'a':2,'d':4,'e':5}
a.update(b)
print(a)
(출력)
> {'korea': 'seoul', 'canada': 'ottawa', 'usa': 'washington'}
> seoul
> {'a': 2, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
2) value 수정
#key , value로 추가 가능
#중복되는 key는 업데이트됨
a['Japan'] = 'Tokyo'
print(a)
a['Japan'] = 'kyoto'
print(a)
(출력)
> {'korea': 'seoul', 'canada': 'ottawa', 'usa': 'washington', 'Japan': 'Tokyo'}
> {'korea': 'seoul', 'canada': 'ottawa', 'usa': 'washington', 'Japan': 'kyoto'}
3) key 삭제 - pop(key) 사용/ del 사용
a = {'a':1,'b':2, 'c':3}
print(a)
#POP
a.pop('b')
print(a)
#del
del a['a'] #전체 세션에서 해당 변수 제거
print(a)
(출력)
> {'a': 1, 'b': 2, 'c': 3}
> {'a': 1, 'c': 3}
> {'c': 3}
4) 초기화
print(a)
a.clear()
print(a)
(출력)
> {'c': 3}
> {}
5) value in dict
- list에서 in 은 성능 저하를 초래할 수 있지만
- dict에서 in 은 바로 찾아온다.
a = {'a':1,'b':2, 'c':3}
print(a)
print('b' in a)
print('d' in a)
6) key로 데이터 접근하기
- get(key) : 키가 없는 경우 None 반환
- dict(key) : 키가 없는 경우 에러
print(a.get('d'))
print(a['d'])
7) 모든 값 반환 -
- keys() : 키만 반환
- values() : vlaue만 반환
- items() : 키, 값 튜플 반환
print(a)
print(a.keys())
print(a.values())
print(list(a.keys()))
print(list(a.values()))
print(list(a.items())) # 튜플 반환
(출력)
> {'a': 1, 'b': 2, 'c': 3}
> dict_keys(['a', 'b', 'c'])
> dict_values([1, 2, 3])
> ['a', 'b', 'c']
> [1, 2, 3]
> [('a', 1), ('b', 2), ('c', 3)]
4. Set
- dictionary에서 key만 사용하는 데이터 구조
- index없음
a = {1,1,2,3,4,1,4,5}
print(a)
#===============================
#set()으로 list > set 변환
a = [1,1,2,3,4,1,4,5]
print(a)
b = set(a)
print(b)
#===============================
a = {1,2,3}
b = {2,3,4}
print(a.union(b)) #합집합
print(a.intersection(b)) #교집합
print(a.difference(b)) #차집합 A-B
print(a.issubset(b)) #부분집합
(출력)
> {1, 2, 3, 4, 5}
> [1, 1, 2, 3, 4, 1, 4, 5]
> {1, 2, 3, 4, 5}
> {1, 2, 3, 4}
> {2, 3}
> {1}
> False
'Database' 카테고리의 다른 글
[SQLD 제40회] 시험 후기, 도움이 될 만한 사이트, 자료 공유 (0) | 2021.03.20 |
---|---|
[Python] 파이썬 기본 문법 정리 - Lambda함수, 정규표현식 등 (0) | 2021.02.14 |
[Database] 5. Mysql SELECT 추가 문법 (group by, count, join 등) (0) | 2021.02.08 |
[Database] 4. 파이썬을 이용한 Data 크롤링 (BeautifulSoup 사용) (0) | 2021.02.08 |
[Database] 3. Foriegn Key 등 (0) | 2021.02.06 |