RND(Right! Now! Develop!) Study - Step. 02 자료형02편
개요 |
학습 구성 |
스터디 인원 |
학습 시작 |
참고 사이트 |
# 개 요
이번 포스팅에서는 파이썬의 자료형에 대해서 알아보도록 하겠습니다.
더욱 더 자세한 내용은! 점프 투 파이썬 위키 사이트 링크 : https://wikidocs.net/1
# 학습 구성
자료형과 제어문 파이썬의 자료형(숫자형, 문자열, 리스트, 터플, 딕셔너리등)
이번 학습은 리스트, 터플, 딕셔너리에 대해서 알아보도록 하겠습니다.
- 환경 : Python3
Let's Start~!
금일은 자료형 중 리스트, 터플, 딕셔너리에 대해서 살펴보도록 하겠습니다.
먼저 리스트에 대해서 살펴보도록 하죠!
1) 리스트 : List를 만들때는 대괄호로 감싸주고([]) 쉼표(,)로 구분을 해줍니다.
- 표현방법 : acet = [1,3,5,7,9]
리스트는 어떠한 자료형도 포함시킬수가 있습니다.
>>> a = []
>>> b = [1, 2, 3]
>>> c = ['Life', 'is', 'too', 'short']
>>> d = [1, 2, 'Life', 'is']
>>> e = [1, 2, ['Life', 'is']]
리스트에도 문자열 처럼 인덱싱과 슬라이싱이 있습니다.
그중 인덱싱에 대해서 먼저 알아보도록 하겠습니다.
>>> a = [1, 2, 3]
>>> a
[1, 2, 3]
>>> a[0]
1
>>> a[0] + a[2]
4
>>> a[-1]
3
문자열하고 표현방법만 다르고 인덱싱과 슬라이싱 부분은 같네요
인덱싱 중 조금 특이한 점은 리스트는 어떠한 자료형도 포함 시킬수가 있기 때문에
리스트 안에 리스트를 넣을 수가 있습니다.
>>> a = [1, 2, 3, ['a', 'b', 'c']]
이런 친구들을 접근할 때는
인덱스 | 0 |
1 |
2 |
3 |
값 | 1 |
2 |
3 |
['a','b','c'] |
>>> a[0]
1
>>> a[-1]
['a', 'b', 'c']
>>> a[3]
['a', 'b', 'c']
라는 결과를 얻을 수가 있겠습니다. ㅎㅎㅎ
그리고 더욱 더 궁금해 할분도 계신 것인데 바로!! ['a', 'b', 'c']안에 있는 친구들은 어떻게 뽑아내야 할까요??
>>> a[-1][0]
'a'
또 다른 예를 보면 3중 리스트 구조!!
>>> a = [1, 2, ['a', 'b', ['Life', 'is']]]
>>> a[2][2][0]
'Life'
a[2][2][0]에서 a[2]는 ['a', 'b', ['Life', 'is']] 가 될 것이다. a[2][2]는 ['Life', 'is']가 될 것이다.
마지막으로 a[2][2][0]는 0번째이므로 'Life'가 될 것이다! good~
이제는 슬라이싱에 대해서 알아보겠습니다.
리스트 슬라이싱 역시 문자열 슬라이싱이랑 다른게 없다.
- 리스트 슬라이싱
>>> a = [1, 2, 3, 4, 5]
>>> a[0:2]
[1, 2]
- 문자열 슬라이싱
>>> a = "12345"
>>> a[0:2]
'12'
약간 리스트형 이다보니 조금 복잡하게는 느껴질 수 있을 것이다.
아래의 예를 보도록 하자.
>>> 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]
- 리스트 반복
>>> a = [1, 2, 3]
>>> a * 3
[1, 2, 3, 1, 2, 3, 1, 2, 3]
- 리스트 수정 예1
>>> a = [1, 2, 3]
>>> a[2] = 4
>>> a
[1, 2, 4]
- 리스트 수정 예2
>>> a[1:2]
[2]
>>> a[1:2] = ['a', 'b', 'c']
>>> a
[1, 'a', 'b', 'c', 4]
- 리스트 삭제 예1
현재 a가 [1, 'a', 'b', 'c', 4] 인 상태에서 a[1:3] = []로 만든다. 즉, 삭제!
>>> a[1:3] = []
>>> a
[1, 'c', 4]
- 리스트 삭제 예2
del이라는 파이썬 내장함수로 삭제가 가능하다!! 두둥~
>>> a
[1, 'c', 4]
>>> del a[1] // 'c'를 삭제 한다는 뜻이다!
>>> a
[1, 4]
# 참고
마지막으로 리스트관련 함수들에 대해서 알아보도록 하겠습니다.
함수명 |
설 명 |
내 용 |
예 제 |
비 고 |
append |
리스트에 요소 추가 |
append(x)는 리스트의 맨 마지막에 x를 추가시키는 함수 |
예제 1) >>> a = [1, 2, 3] >>> a.append(4) >>> a [1, 2, 3, 4] 예제2) >>> a.append([5,6]) >>> a [1, 2, 3, 4, [5, 6]] |
|
sort |
리스트 정렬 |
sort 함수는 리스트의 요소를 순서대로 정렬하여 정렬된 값을 돌려준다. |
예제1) >>> a = [1, 4, 3, 2] >>> a.sort() >>> a [1, 2, 3, 4] 예제2) >>> 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라는 값이 있으면 그 위치를 돌려준다. |
>>> a = [1,2,3] >>> a.index(3) 2 >>> a.index(1) 0 |
>>> a.index(0) 처럼 인덱스를 찾지 못하면 오류가 난다. |
insert |
리스트에 요소 삽입 |
insert(a, b)는 리스트의 a번째 위치에 b를 삽입하는 함수이다. |
예제1) >>> a = [1,2,3] >>> a.insert(0, 4) [4, 1, 2, 3] 예제2) >>> a.insert(3, 5) [4, 1, 2, 5, 3] |
|
remove |
리스트 요소 제거 |
remove(x)는 첫번째 나오는 x 를 삭제하는 함수이다. |
아래의 예는 a가 3이라는 값을 두개 가지고 있을경우 첫번째 3만을 제거하는 것을 보여준다. >>> a = [1,2,3,1,2,3] >>> a.remove(3) [1, 2, 1, 2, 3] |
|
pop |
리스트 요소 끄집어 내기 |
pop() 함수는 리스트의 맨 마지막 요소를 돌려주고 그 요소는 삭제한다. |
예제 1) >>> a = [1,2,3] >>> a.pop() 3 >>> a [1, 2] 예제2) >>> a = [1,2,3] >>> a.pop(1) 2 >>> a [1, 3] |
|
count |
갯수 세기 |
count(x)는 리스트 중에서 x가 몇 개 있는지를 조사하여 그 갯수를 돌려주는 함수이다. |
>>> a = [1,2,3,1] >>> a.count(1) 2 |
|
extend |
리스트 확장 |
extend(x)에서 x에는 리스트만 올 수 있다. 원래의 a 리스트에 x 리스트를 더하게 된다. |
>>> a = [1,2,3] >>> a.extend([4,5]) >>> a [1, 2, 3, 4, 5] |
a.extend([4,5])는 a += [4,5]와 동일하다. |
2) 터플(tuple)
터플 또는 튜플 이라고 불립니다.
터플이란 리스트와 몇 가지 점을 제외하곤 모든 것이 동일하다. 그 다른 점은 다음과 같다.
- 리스트는 [ 과 ] 으로 둘러싸지만 터플은 (과 )으로 둘러싼다.
- 리스트는 그 값을 생성, 삭제, 수정이 가능하지만 터플은 그 값을 변화시킬 수 없다.
>>> t1 = ()
>>> t2 = (1,) // 1개의 요소를 넣을려면 하나의 요소와 콤마가 필요하다!
>>> t3 = (1,2,3)
>>> t4 = 1,2,3 // 괄호가 생략가능하다!
>>> t5 = ('a', 'b', ('ab', 'cd'))
터플의 인덱싱, 슬라이싱, 더하기와 반복에 대해서 알아보겠습니다.
값을 변화시킬 수 없다는 점만 제외하면 리스트와 동일하기 때문에 간단하게 살펴보겠습니다.
- 인덱싱
>>> t1 = (1, 2, 'a', 'b')
>>> t1[0]
1
>>> t1[3]
'b'
- 슬라이싱
>>> t1 = (1, 2, 'a', 'b')
>>> t1[1:]
(2, 'a', 'b')
- 터플 더하기(합)
>>> t1 = (1, 2, 'a', 'b')
>>> t2 = (3, 4)
>>> t1 + t2
(1, 2, 'a', 'b', 3, 4)
- 터플 반복
>>> t2 = (3, 4)
>>> t2 * 3
(3, 4, 3, 4, 3, 4)
터플의 요소 값은 변경시킬 수 없다 터플의 요소값은 한 번 정하면 지우거나 변경할 수 없다.
터플의 요소를 지우려고 할 때의 오류
>>> del t1[0]
Traceback (innermost last):
File "", line 1, in ?del t1[0]
TypeError: object doesn't support item deletion
터플의 요소를 변경 하려고 할 때
>>> t1[0] = 'c'
Traceback (innermost last):
File "", line 1, in ?t1[0] = 'c'
TypeError: object doesn't support item assignment
3) 딕셔너리
음...사전이란 뜻을 가진 딕셔너리!
즉, people 이란 단어에 ‘사람’, baseball 이라는 단어에 ‘야구’라는 뜻이 부합되듯이 딕셔너리는 Key와 Value라는 것을 한 쌍으로 갖는 자료형이다. 엄청...사용빈도가 높을 것 같은 친구!! ㅋㅋㅋ
key&value형태이다보니 java에서의 map이나 json형식이 떠오른다.
anyways..더 알아가보자! ㅎㅎㅎ
- 형태
{Key1:Value1, Key2:Value2, Key3:Value3 ...}
- 예제
>>> dic = {'name':'pey', 'phone':'0119993323', 'birth': '1118'}
위에서 key는 각각 ‘name’, ‘phone’, ‘birth’이고 그에 해당하는 value는 ‘pey’, ‘0119993323’, ‘1118’이 된다.
딕셔너리 dic의 정보
key | value |
---|---|
name | pey |
phone | 01199993323 |
birth | 1118 |
또한 아래와 같이 숫자1의 키에 값 'hi'를 넣거나
>>> a = {1: 'hi'}
아래와 같이 'a'문자에 리스트 [1,2,3]을 넣을 수도 있다.
>>> a = { 'a': [1,2,3]}
와우! 정리하기 빡세네욤 ㅋㅋㅋ 일단 여기까쥐~~
# 참고사이트
anyjava님 : http://blog.anyjava.net/114
- END -
'Language > Python' 카테고리의 다른 글
crontab+python3 (0) | 2015.06.30 |
---|---|
python??? (0) | 2015.06.22 |
RND(Right! Now! Develop!) Study - Python Step. 02 자료형_01 (0) | 2014.08.05 |
RND(Right! Now! Develop!) Study - Python Step. 01 셋팅 및 기초문법 (0) | 2014.08.04 |
python 공부해보자! (2) | 2014.07.17 |