python

[python] 파이썬 함수, Type(리스트, 튜플, dictionary)

vhxpffltm 2019. 8. 13. 22:11

파이썬 자료형

파이썬 Type으로 리스트를 간단하게 알아보았다. 배열처럼 사용하고 []으로 쓰는것을 명심하자

 

이것과 비슷하게 Tuple이라는 타입이 있다. ()으로 사용하고 []을 통해 원소에 접근한다. 리스트와의 차이점은 리스트는 일반적으로 동일한 자료형으로 이루어진 항목들에 대해 사용하고 튜플은 서로 다른 종류의 데이터형으로 이루어진 항목들에 사용한다. 

 

Dictionary는 {}으로 사용하며 C++의 map이나 자바스크립트의 객체처럼 이해하면 쉽다. 즉 key와 value의 쌍이라 생각하자

 

튜플은 이미 생성된 원소를 제거하거나 변경할 수 없다. 
이들이 비어있을때는 false를 가지기 때문에 if not list 를 사용하여 비어있는지 확인할 수 있다. 

str, tuple, list는 비어있을때 false이다.

 

아래의 코드로 이해하길 바란다.

1
2
3
4
5
6
7
8
9
10
11
12
13
arr1 = ['A''B''C''D']
arr2 = ['a''b''c''d']
= []
for food in arr1 + arr2:
    if not food in a:
        a.append(food)
print(a)
print(len(a))
 
tup = [1,3.55,'djdjk']
cars = {1004:'R'44:'good'1945:'plain'2002:'world'}
key = 1004
print('키 : {}  값 : {}입니다.'.format(key, cars[key]))
 

 

위의 결과를 얻을 수 있을 것이다. Set 타입이 있으며, 이는 C++의 <set> 컨테이너와 비슷하다. 즉 중복을 피해 원소를 가질 수 있다.

 

파이썬 함수(Function)

혹시 이전의 코드에서 'def '함수명()' 의 구조를 봤다면 그것이 파이썬의 함수이다. 여기서는 코드와 주석을 통해서만 함수가 어떻게 사용되고 쓰이는지 알아보자

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def f(name, *family, **family2):
    print(name)
    print('가족이름은 아래와 같다?')
    for name in family:
        print(name)
    print('-'* 40)
    for key in family2.keys():
        print(key, ':', family2[key])
    print('타입 알아보기 : ', type(family), type(family2))
f('크리크리''1_사람1''철수''맹구''첼시''사스날', 집='용인', 가훈='화이팅!')
 
'''
위와 같은 함수로 확인가능, 파이썬에서 *은 인자값 여러개를 하나의 변수에 담아서 저장할 수 있다.
한개는 튜플형, 2개는 사전형임을 알면된다, *는 패킹이냐 언패킹이냐의 역할을 한다.
리스트와 튜플의 차이점은 불변성, 즉 수정 가능한가 불가능 한가, 사전형은 C++의 map처럼 key:value 라고 생각
혹은 JS처럼 객체처럼 생각
'''
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
 

 

 

위와 같은 결과가 나올 것이다.

 

우선 파이썬의 함수는 def '함수명(인자)' : 의 모양을 가지게 된다. 들여쓰기를 통해 범위를 지정한다. 

함수호출 역시 우리가 알고 있는 방법으로 하면 된다.

파이썬에서 *연산자를 쓴것만 주의하면 된다. 코드의 주석으로 표시하였으며, 가변인자 리스트 라고 한다. 

*기호는 튜플형 데이터를 대입하는 의미이며 **는 키와 값의 쌍으로 이루어지는 사전형 데이터를 대입하는 것이다. 코드와 결과를 보면 쉽게 이해할 수 있다.

 

*언패킹 인자 리스트*

1
2
3
4
5
print(list(range(3,6)))
args = [3,6]
print(args)
print(list(range(*args)))
#*는 패킹이냐 언패킹이냐의 역할을 한다.
 

파이썬에서 *기호는 데이터를 패킹할지 언패킹 할지를 결정하는 역할을 하는것을 위의 코드로 이해할 수 있다. 위 코드를 실행하면 어떤 결과가 나오는지 확인해보자.

사전형도 동일한 역할을 수행한다. 사전형을 확인할 때, **로 확인해야한다.

'python' 카테고리의 다른 글

[python] 파이썬 클래스 실습 및 정규식예제  (0) 2019.08.26
[python] 파이썬 모듈_Module  (0) 2019.08.26
[python] 파이썬 클래스  (0) 2019.08.13
[python] 파이썬 제어문  (0) 2019.08.12
[python] 자료형, 입력, 출력  (0) 2019.08.12