IT recording...

[Python] 파이썬 기본 문법 정리 - List, Tuple, Dictionary, Set 본문

Database

[Python] 파이썬 기본 문법 정리 - List, Tuple, Dictionary, Set

I-one 2021. 2. 10. 00:52

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

Comments