참고
참고 자료는 점프 투 파이썬으로 선택했습니다.
※스스로를 위해 정리한 참고 자료입니다.

리스트 자료형

앞서 숫자와 문자열에 대해서 배웠는데, 숫자와 문자열만으로 프로그래밍을 하기에는 부족한 점이 많다.
예를 들어 1부터 10까지의 숫자 중 홀수의 모음인 1,3,5,7,9의 집합을 생각해보면,
숫자나 문자열로 표현하기에는 어렵다.
파이썬은 이러한 불편함을 해소할 수 있는 자료형이 존재한다.(이것이 리스트[List]이다.)

리스트는 어떻게 만들고 사용할까?

리스트를 사용하면1,3,5,7,9의 숫자 모음을 다음과 같이 간단하게 표현할 수 있다.

>> odd = [1,3,5,7,9]
  • 리스트를 만들 때는 위에서 보는 것과 같이 대괄호([])로 감싸 주고 각 요솟값은 쉼표(,)로 구분해 준다.
리스트명 = [요소1, 요소2, 요소3, ...]

리스트의 인덱싱과 슬라이싱

리스튿 문자열 처럼 인덱싱과 슬라이싱이 가능하다.

리스트의 인덱싱

먼저 a변수에 [1,2,3]값을 설정한다.

>>> a = [1,2,3]
>>> a
[1,2,3]

a[0]은 리스트 a의 첫 번째 요솟값을 말한다.

>>> a[0]
1

다음 은 a[0]와 a[2]의 값을 더한 예이다.

>>> a[0] + a[2]
4

문자열을 공부할 때 이미 살펴보았지만, 파이썬은 숫자를 0부터 세기 때문에 a[1]이 리스트 a의 첫번째 요소가 아니라 a[0]이 리스트 a의 첫 번째 요소라는 것을 명심하자!
a[-1]은 문자열에서와 마찬가지로 리스트 a의 마지막 요솟값을 말한다.

>> a[-1]
3

이번에는 리스트 a를 숫자 1,2,3과 또 다른 리스트인 ['a','b','c']를 포함하도록 만들어 보자.

>>> a = [1, 2, 3, ['a', 'b', 'c']]

그리고 다음 예제를 따라해보자!

>>> a[0]
1
>>> a[-1]
['a', 'b', 'c']
>>> a[3]
['a', 'b', 'c']
  • 예상한 대로 a[-1]은 마지막 요솟값 ['a', 'b', 'c']를 타나낸다.
  • a[3]은 리스트 a의 네 번째 요소를 나타내기 때문에 마지막 요소를 나타내는 a[-1]과 동일한 결괏값을 보여준다.

그렇다면 리스트 a에 포함된 ['a', 'b', 'c'] 리스트에서 'a' 값을 인덱싱을 사용해 끄집어 낼 수 있는 방법은 없을까? 다음 예제를 살펴 보자!

>>> a[-1][0]
'a'

'b'와 'c'도 마찬가지로 하면 된다!

>>> a[-1][1]
'b'
>>> a[-1][2]
'c'

삼중 리스트에서 인덱싱하기

조금 복잡하지만, 리스트를 다음과 같이 작성할 수도 있다.

>> a = [1,2,['a','b',['Life','is']]]

리스트 a 안에 ['a', 'b', ['Life', 'is']] 리스트가 포함되어 있고 그 리스트 안에 다시 ['Life', 'is'] 리스트가 포함되어 있다.
즉, 삼중 구조의 리스트이다.
이 경우, 'Life' 문자열만 끄집어 내려면 다음과 같이 해야 한다.

>> a[2][2][0]
'Life'

리스트의 슬라이싱

문자열과 마찬가지로 리스트에서도 슬라이싱 기법을 적용할 수 있다. 슬라이싱은 '잘라 낸다'라는 뜻이라고 했다.

>>> a = [1, 2, 3, 4, 5]
>>> a[0:2]
[1,2]

앞의 예를 문자열에서 슬라이싱했던 예와 비교해 보자.

>>> a = "12345"
>>> a[0:2]
'12'

몇 가지 예를 더 살펴보자.

>>> a = [1, 2, 3, 4, 5]
>>> b = a[:2]
>>> c = a[2:]
>>> b
[1, 2]
>>> c
[3, 4, 5]
  • b 변수는 리스트 a의 첫 번째 요소부터 두 번째 요소인 a[1]까지 나타내는 리스트이다.
  • 물론 a[2] 값인 3은 포함되지 않는다. c라는 변수는 리스트 a의 세 번째 요소부터 끝까지 나타내는 리스트이다.

중첩된 리스트에서 슬라이싱하기

리스트가 포함된 중첩 리스트 역시 슬라이싱 방법은 똑같이 적용된다.

>> a = [1, 2, 3, ['a', 'b', 'c'], 4, 5]
>> a[2:5]
[3, ['a', 'b', 'c'], 4]
>> a[3][:2]
['a', 'b']

리스트 연산하기

리스트 역시 +를 사용해서 더할 수 있고 *를 사용해서 반복할 수 있다. 문자열과 마찬가지로 리스트에서도 되는지 직접 확인해 보자.

리스트 더하기(+)

>>> a = [1, 2, 3]
>>> b = [4, 5, 6]
>>> a + b
[1, 2, 3, 4, 5, 6]
  • 리스트 사이에서 +는 2개의 리스트를 합치는 기능을 한다.
  • 문자열에서 "abc" + "def" = "abcdef"가 되는 것과 같은 이치이다.

리스트 반복하기(*)

>>> a = [1, 2, 3]
>>> a * 3
[1, 2, 3, 1, 2, 3, 1, 2, 3]
  • 위에서 볼 수 있듯이 [1,2,3] 리스트가 세 번 반복되어 새로운 리스트를 만들어 낸다.
  • 문자열에서 "abc" * 3 = "abcabcabc" 가 되는 것과 같은 이치이다.

리스트 길이 구하기

리스트 길이를 구하기 위해서는 다음처럼 len 함수를 사용해야 한다.

>>> a = [1,2,3]
>>> len(a)
3
  • len은 문자열, 리스트 외에 앞으로 배울 튜플과 딕셔너리에도 사용할 수 있는 함수이다.

초보자가 범하기 쉬운 리스트 연산 오류

다음 소스 코드를 입력했을 때 결괏값은 어떻게 나올까?

>> a = [1,2,3]
>> a[2[ + "hi"
  • a[2]의 값인 3과 문자열 hi가 더해져서 3hi가 출력될 것이라고 생각할 수 있다. 하지만 다음 결과를 살펴보니 오류가 발생했다. 오류의 원인은 무엇일까?
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'str'
  • a[2]에 저장된 값은 3이라는 정수인데 "hi"는 문자열이다. 정수와 문자열은 당연히 서로 더할 수 없기 때문에 오류가 발생한 것이다.
  • 만약 숫자와 문자열을 더해서 '3hi'를 만들고 싶다면 다음처럼 숫자 3을 문자 '3'으로 바꾸어야 한다.
>> str(a[2]) + "hi"
3hi
  • str은 정수나 실수를 문자열로 바꾸어 주는 파이썬 내장 함수이다.

리스트의 값 수정하기

>>> a = [1,2,3]
>>> a[2] = 4
>>> a
[1,2,3]
  • a[2]의 요솟값 3이 4로 바뀌었다.

del 함수를 사용해 리스트 요소 삭제하기

>>> a = [1,2,3]
>>> dek a[1]
>>> a
[1,3]

del a[x]는 x번째 요솟값을 삭제한다. 위에서는 a리스트에서 a[1]을 삭제했다.

  • del 함순느 파이썬이 자체적으로 가지고 있는 삭제 함수이며 다음과 같이 사용한다.
del 객체

객체란 파이썬에서 사용되는 모든 자료형을 말한다.

다음처럼 슬라이싱 기법을 사용하여 리스트의 요소 여러 개를 한꺼번에 삭제할 수도 있다.

>>> a = [1,2,3,4,5]
>>> del a[2:]
>>> a
[1,2]
  • a[2:]에 해당하는 리스트의 요소들이 삭제되었다.
  • 리스트의 요소를 삭제하는 방법에는 2가지가 더 있다. 바로 리스트의 remove와 pop 함수를 사용하는 것인데, 이는 관련 함수에서 설명한다!

리스트 관련 함수

문자열과 마찬가지로 리스트 변수 이름 뒤에'.'를 붙여 여러 가지 리스트 관련 함수를 사용할 수 있다.

리스트에 요소 추가하기 - append

append의 사전적 의미는 '덧붙이다, 첨부하다'이다. 이 뜻을 안다면 다음 예가 바로 이해가 될 것이다.
append(x)는 리스트의 맨 마지막에 x를 추가하는 함수이다.

>>> a = [1,2,3]
>>> a.append(4)
>>> a
[1,2,3,4]

리스트 안에는 어떤 자료형도 추가할 수 있다. 다음 예제는 리스트에 다시 리스트를 추가한 결과이다.

>>> a = [1,2,3]
>>> a.append([5,6])
>>> a
[1,2,3,4,[5,6]]

리스트 정렬 - sort

sort 함수는 리스트의 요소를 순서대로 정렬해 준다.

>>> a = [1,4,3,2]
>>> a.sort()
>>> a
[1,2,3,4]

문자 역시 알파벳 순서로 정렬할 수 있다.

>>> a = ['a', 'c', 'b']
>>> a.sort()
>>> a
['a', 'b', 'c']

리스트 뒤집기 - reverse

reverse 함수는 리스트를 역순으로 뒤집어 준다. 이때 리스트 요소들을 순서대로 정렬한 다음 다시 역순으로 정렬하는 것이 아니라 현재의 리스트를 그대로 거꾸로 뒤집는다.

>>> a = ['a', 'c', 'b']
>>> a.reverse()
>>> a
['b', 'c', 'a']

인덱스 반환 - index

index(x) 함수는 리스트에 x 값이 있으면 x의 인덱스 값(위칫값)을 리턴한다.

>>> a = [1,2,3]
>>> a.index(3)
2
>>> a.index(2)
1
  • a.index(0) 에서 값 0은 a리스트에 존재하지 않기 때문에 오류가 발생한다.

리스트에 요소 삽입 - insert

insert(a,b)는 리스트의 a번째 위치에 b를 삽입하는 함수이다.

>>> a = [1,2,3]
>>> a.insert(0,4)
>>> a
[4,1,2,3]
  • 위 예는 0번째 자리, 즉 첫 번째 요소인 a[0] 위치에 값 4를 삽입하라는 뜻이다.
>>> a.insert(3, 5)
>>> a
[4, 1, 2, 5, 3]
  • 위 예는 리스트 a의 a[3], 즉 네 번째 요소 위치에 값 5를 삽입하라는 뜻이다.

리스트 요소 제거 - remove

remove(x)는 리스트에서 첫 번째로 나오는 x를 삭제하는 함수이다.

>>> a = [1,2,3,1,2,3]
>>> a.remove(3)
>>> a
[1,2,1,2,3]
  • a가 3이라는 값을 2개 가지고 있을 경우, 첫 번째 3만 제거되는 것을 알 수 있다.
>>> a.remove(3)
>>> a
[1, 2, 1, 2]
  • remove(3)을 한 번 더 실행하면 다시 3이 삭제된다.

리스트 요소 끄집어 내기 - pop

pop()은 리스트의 맨 마지막 요소를 리턴하고 그 요소는 삭제한다.

>>> a = [1, 2, 3]
>>> a.pop()
3
>>> a
[1, 2]
  • a 리스트를 다시 보면 [1, 2, 3]에서 3을 끄집어 내고 최종적으로 [1, 2]만 남는 것을 확인할 수 있다.

  • pop(x)는 리스트의 x번째 요소를 리턴하고 그 요소는 삭제한다.

>>> a = [1, 2, 3]
>>> a.pop(1)
2
>>> a
[1, 3]
  • a.pop(1)은 a[1]의 값을 끄집어 내어 리턴한다. 다시 a를 출력해 보면 끄집어 낸 값이 삭제된 것을 확인할 수 있다.

리스트에 포함된 요소 x의 개수 세기 - count

count(x)는 리스트 안에 x가 몇 개 있는지 조사하여 그 개수를 리턴하는 함수이다.

>>> a = [1,2,3,1]
>>> a.count(1)
2
  • 1이라는 값이 리스트 a에 2개 들어 있으므로 2를 리턴한다.

리스트 확장 - extend

extend(x)에서 x에는 리스트만 올 수 있으며 원래의 a 리스트에 x 리스트를 더하게 된다.

>>> a = [1, 2, 3]
>>> a.extend([4, 5])
>>> a
[1, 2, 3, 4, 5]
>>> b = [6, 7]
>>> a.extend(b)
>>> a
[1, 2, 3, 4, 5, 6, 7]
  • a.extend([4, 5])는 a += [4, 5]와 동일하다.

튜플 자료형

튜플(tuple)은 몇 가지 점을 제외하곤 리스트와 거의 비슷하며 리스트와 다른 점은 다음과 같다.

  • 리스트는 [], 튜플은()으로 둘러싼다.
  • 리스트는 요솟값의 생성, 삭제, 수정이 가능하지만, 튜플은 요솟값을 바꿀 수 없다.

튜플은 어떻게 만들까?

튜플은 다음과 같이 여러 가지 모습으로 생성할 수 있다.

t1 = ()
t2 = (1,)
t3 = (1,2,3)
t4 = 1, 2, 3
t5 = ('a', 'b', ('ab', 'cd'))
  • 모습은 리스트와 거의 비슷하지만, 튜플에서는 리스트와 다른 2가지 차이점을 찾아볼 수 있다.

  • t2 = (1,)처럼 단지 1개의 요소만을 가질 때는 요소 뒤에 쉼표(,)를 반드시 붙여야 하고

  • t4 = 1, 2, 3처럼 소괄호(())를 생략해도 된다는 점이다.

  • 얼핏 보면 튜플과 리스트는 비슷한 역할을 하지만, 프로그래밍을 할 때 튜플과 리스트는 구별해서 사용하는 것이 유리하다.

  • 튜플과 리스트의 가장 큰 차이는 요솟값을 변화시킬 수 있는지의 여부이다.

  • 즉, 리스트의 요솟값은 변화가 가능하고 튜플의 요솟값은 변화가 불가능하다.

  • 따라서 프로그램이 실행되는 동안 요솟값이 항상 변하지 않기를 바란다거나 값이 바뀔까 걱정하고 싶지 않다면 주저하지 말고 튜플을 사용해야 한다.

  • 이와 반대로 수시로 그 값을 변화시켜야할 경우라면 리스트를 사용해야 한다.

  • 실제 프로그램에서는 값이 변경되는 형태의 변수가 훨씬 많기 때문에 평균적으로 튜플보다 리스트르 더 많이 사용한다.

튜플의 요솟값을 지우거나 변경하려고 하면 어떻게 될까?

앞에서 설명했듯이 튜플의 요솟값은 한 번 정하면 지우거나 변경할 수 없다.
다음에 소개하는 두 예를 살펴보면 무슨 말인지 알 수 있을 것이다!

1.튜플 요솟값을 삭제하려 할 때

>>> t1 = (1, 2, 'a', 'b')
>>> del t1[0]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object doesn't support item deletion
  • 튜플의 요소를 리스트처럼 del 함수로 지우려고 한 예이다.
  • 튜플은 요솟값을 지울 수 없다는 오류 메시지를 확인할 수 있다.

2.튜플 요솟값을 변경하려 할 때

>>> t1 = (1, 2, 'a', 'b')
>>> t1[0] = 'c'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
  • 튜플의 요솟값을 변경하려고 해도 오류가 발생하는 것을 확인할 수 있다.

튜플 다루기

튜플은 요솟값을 변화시킬 수 없다는 점만 제외하면 리스트와 완전히 동일하므로 간단하게만 살펴보자.
다음 예제는 서로 연관되어 있으므로 차례대로 수행 해보자!

인덱싱하기

>>> t1 = (1,2,'a','b')
>>>t1[0]
1
>>>t1[3]
'b'
  • 문자열, 리스트와 마찬가지로 t1[0],t1[3] 처럼 인덱싱이 가능하다.

슬라이싱하기

>>> t1 = (1,2,'a','b')
>>> t1[1:]
(2,'a','b')
  • t1[1]부터 튜플의 마지막 요소까지 슬라이싱하는 예이다.

튜플 더하기

>>> t1 = (1, 2, 'a', 'b')
>>> t2 = (3, 4)
>>> t3 = t1 + t2
>>> t3
(1, 2, 'a', 'b', 3, 4)
  • 튜플을 더하는 방법을 보여 주는 예이다. 이때도 t1, t2 튜플의 요솟값이 바뀌는 것은 아니다.
  • 다만, t1, t2 튜플을 더하여 새로운 튜플 t3을 생성한 것이다.

튜플 곱하기

>>> t2 = (3, 4)
>>> t3 = t2 * 3
>>> t3
(3, 4, 3, 4, 3, 4)
  • 튜플의 곱하기(반복)의 예를 보여준다.

튜플 길이 구하기

>>> t1 = (1, 2, 'a', 'b')
>>> len(t1)
4
  • 튜플의 길이를 구하는 예이다.

튜플은 요솟값을 변경할수 없기 때문에 sort, insert, remove, pop과 같은 내장 함수가 없다.


딕셔너리 자료형

딕셔너리는 '연관 배열(associative array)’또는 ‘해시(hash)’라고 한다.
딕셔너리는 리스트나 튜플처럼 순차적으로(sequential) 해당 요솟값을 구하지 않고 Key를 통해 Value를 얻는다.

딕셔너리는 어떻게 만들까?

  • 다음은 딕셔너리의 기본 모습이다.
{Key1: Value1, Key2: Value2, Key3: Value3, ...}
  • Key와 Value의 쌍 여러 개가 {}로 둘러싸여 있다.

  • 각각의 요소는 Key:Value 형태로 이루어져 있고 쉼표(,)로 구분되어 있다.

  • 다음 딕셔너리의 예를 살펴보자.

>>> dic = {'name': 'pey', 'phone': '010-9999-1234', 'birth': '1118'}
  • 위에서 Key는 각각 'name', 'phone', 'birth'
  • 각각의 Key에 해당하는 Value는 'pey', '010-9999-1234', '1118'이 된다.
딕셔너리 dic의 정보
keyvalue
namepey
phone010-9999-1234
birth1118
  • 다음은 Key로 정숫값 1, Value로 문자열 'hi'를 사용한 예이다.
>>> a = {1:'hi'}
  • 또한 다음 예처럼 Value에 리스트도 넣을 수 있다.
>>> a = {'a':[1,2,3]}

딕셔너리 쌍 추가하기

>>> a = {1: 'a'}
>>> a[2] = 'b'
>>> a
{1: 'a', 2: 'b'}
  • {1: 'a'} 딕셔너리에 a[2] = 'b'와 같이 입력하면 딕셔너리 a에 Key와 Value가 각각 2와 'b'인 {2: 'b'} 딕셔너리 쌍이 추가된다.
>>> a['name'] = 'pey'
>>> a
{1: 'a', 2: 'b', 'name': 'pey'}
  • 딕셔너리 a에 {'name':'pey'} 쌍이 추가되었다.
>>> a[3] = [1, 2, 3]
>>> a
{1: 'a', 2: 'b', 'name': 'pey', 3: [1, 2, 3]}
  • Key는 3, Value는 [1, 2, 3]을 가지는 한 쌍이 또 추가되었다.

딕셔너리 요소 삭제하기

>>> del a[1]
>>> a
{2: 'b', 'name': 'pey', 3: [1, 2, 3]}
  • del 함수를 사용해서 del a[key]를 입력하면 지정한 Key에 해당하는 {Key: Value} 쌍이 삭제된다.

딕셔너리에 Key를 사용해 Value 얻기

>>> grade = {'pey': 10, 'julliet': 99}
>>> grade['pey']
10
>>> grade['julliet']
99
  • 리스트나 튜플, 문자열은 요솟값을 얻고자 할 때 인덱싱이나 슬라이싱 기법 중 하나를 사용했다. 하지만 딕셔너리는 단 1가지 방법뿐이다. 그것은 바로 Key를 사용해서 Value를 구하는 방법이다. 위 예에서 'pey'라는 Key의 Value를 얻기 위해 grade['pey']를 사용한 것처럼 어떤 Key의 Value를 얻기 위해서는 '딕셔너리변수이름[Key]'를 사용해야 한다.

딕셔너리 만들 때 주의할 사항

>>> a = {1:'a', 1:'b'}
>>> a
{1: 'b'}
  • 딕셔너리에서 Key는 고유한 값이므로 중복되는 Key 값을 설정해 놓으면 하나를 제외한 나머지 것들이 모두 무시된다는 점에 주의해야 한다.
  • 위의 예에서 볼 수 있듯이 동일한 Key가 2개 존재할 경우, 1: 'a' 쌍이 무시된다.
  • 이렇게 Key가 중복되었을 때 1개를 제외한 나머지 Key: Value 값이 모두 무시되는 이유는 Key를 통해서 Value를 얻는 딕셔너리의 특징 때문이다.
  • 즉, 딕셔너리에는 동일한 Key가 중복으로 존재할 수 없다.
  • 또 1가지 주의해야 할 점은 Key에 리스트는 쓸 수 없다는 것이다.
  • 하지만 튜플은 Key로 쓸 수 있다.
  • 딕셔너리의 Key로 쓸 수 있느냐, 없느냐는 Key가 변하는(mutable) 값인지, 변하지 않는(immutable) 값인지에 달려 있다.
  • 리스트는 그 값이 변할 수 있기 때문에 Key로 쓸 수 없다.
  • 리스트를 Key로 설정하면 리스트를 키 값으로 사용할 수 없다는 오류가 발생한다.

딕셔너리 관련 함수

Key 리스트 만들기 - keys

>>> a = {'name': 'pey', 'phone': '010-9999-1234', 'birth': '1118'}
>>> a.keys()
dict_keys(['name', 'phone', 'birth'])
  • a.keys()는 딕셔너리 a의 Key만을 모아 dict_keys 객체를 리턴한다.
  • dict_keys 객체는 다음과 같이 사용할 수 있다. 리스트를 사용하는 것과 별 차이는 없지만, 리스트 고유의 append, insert, pop, remove, sort 함수는 수행할 수 없다.
>>> for k in a.keys():
...    print(k)
...
name
phone
birth
  • print(k)를 입력할 때 들여쓰기를 하지 않으면 오류가 발생하므로 주의하자.
  • dict_keys 객체를 리스트로 변환하려면 다음과 같이 하면 된다.
>>> list(a.keys())
['name', 'phone', 'birth']

Value 리스트 만들기 - values

>>> a.values()
dict_values(['pey', '010-9999-1234', '1118'])
  • key를 얻는 것과 마찬가지 방법으로 Value만 얻고 싶다면 values 함수를 사용하면 된다.
  • values 함수를 호출하면 dict_values 객체를 리턴한다.

Key, Value 쌍 얻기 - items

>>> a.items()
dict_items([('name', 'pey'), ('phone', '010-9999-1234'), ('birth', '1118')])
  • items 함수는 Key와 Value의 쌍을 튜플로 묶은 값을 dict_items 객체로 리턴한다.

Key: Value 쌍 모두 지우기 - clear

>>> a.clear()
>>> a
{}
  • clear 함수는 딕셔너리 안의 모든 요소를 삭제한다.

    빈 리스트를 [], 빈 튜플을 ()로 표현하는 것과 마찬가지로 빈 딕셔너리도 {}로 표현한다.

Key로 Value 얻기 - get

>>> a = {'name': 'pey', 'phone': '010-9999-1234', 'birth': '1118'}
>>> a.get('name')
'pey'
>>> a.get('phone')
'010-9999-1234'
  • get(x) 함수는 x라는 Key에 대응되는 Value를 리턴한다. 앞에서 살펴보았듯이 a.get('name')은 a['name']을 사용했을 때와 동일한 결괏값을 리턴한다.
  • 다만, 다음 예제에서 볼 수 있듯이 a['nokey']처럼 딕셔너리에 존재하지 않는 키로 값을 가져오려고 할 경우, a['nokey'] 방식은 오류를 발생시키고 a.get('nokey') 방식은 None을 리턴한다는 차이가 있다.
>>> a = {'name':'pey', 'phone':'010-9999-1234', 'birth': '1118'}
>>> print(a.get('nokey'))
None
>>> print(a['nokey’])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'nokey'
  • 딕셔너리 안에 찾으려는 Key가 없을 경우, 미리 정해 둔 디폴트 값을 대신 가져오게 하고 싶을 때는 get(x, '디폴트 값')을 사용하면 편리하다.
>>> a.get('nokey', 'foo')
'foo'
  • 딕셔너리 a에는 'nokey'에 해당하는 Key가 없다. 따라서 디폴트 값인 'foo'를 리턴한다.

해당 Key가 딕셔너리 안에 있는지 조사하기 - in

>>> a = {'name':'pey', 'phone':'010-9999-1234', 'birth': '1118'}
>>> 'name' in a
True
>>> 'email' in a
False
  • 'name' 문자열은 a 딕셔너리의 Key 중 하나이다. 따라서 'name' in a를 호출하면 참(True)을 리턴한다.
  • 이와 반대로 'email'은 a 딕셔너리 안에 존재하지 않는 Key이므로 거짓(False)을 리턴한다.



출처 및 참고자료

https://wikidocs.net/14

https://wikidocs.net/14

profile
안녕하세요

0개의 댓글