반응형

파이썬 기초 19

[파이썬 기초] 유사 딕셔너리 defaultdict() 활용법

defaultdict()는 딕셔너리를 만드는 dict클래스의 서브클래스이다. 작동하는 방식은 거의 동일한데, defaultdict()는 인자로 주어진 객체(default-factory)의 기본값을 딕셔너리값의 초깃값으로 지정할 수 있다. 숫자, 리스트, 셋등으로 초기화 할 수 있기때문에 여러 용도로 사용할 수 있다. 기본적인 작동방식을 살펴보면 >>> from collections import defaultdict # 외부함수이기 때문에 import 해야한다. >>> int_dict = defaultdict(int) >>> int_dict defaultdict(, {}) # 디폴트값이 int인 딕셔너리 위와 같이 설정을 하면 값을 지정하지 않은 키는 그 값이 0으로 지정된다. >>> int_dict['k..

IT 2023.02.08

[파이썬 기초] 여러줄에 걸쳐 입력 - \ (백슬래쉬)

파이썬은 한줄씩 명령을 실행하는 인터프리터 언어이다. 엔터키를 누르게 되면 인터프리터가 한줄의 끝으로 인식해 버리기때문에 명령이 실행되어 버린다. 그리고, 한줄에 너무 많은 정보를 넣게 되면 가독성이 떨어져, 유지보수에도 문제가 생길 수 있다. 자바와 같은 언어들은 줄의 마지막을 표시하는 콜론기호(;)가 있기때문에 얼마든지 여러줄에 걸쳐서 한 문장을 완성할 수 있다. 그럼 파이썬은 어떻게 이 문제를 해결할까? 바로 백슬래쉬(\)로 이 문제를 해결한다. 한 문장의 끝에 백슬래시를 적어주면 파이썬 인터프리터가 다음라인을 같은라인으로 인식한다. 역슬래시를 이용해서 여러줄에 걸쳐서 한 문장을 작성해 줄 수 있다. 긴 문자열을 만드는 상황을 생각해보자. >>> prov = 'Life is the art of dr..

IT 2018.12.13

[파이썬 기초] 주석달기 - # (샵)

# 기호는 숫자 3번위에 붙어있는 기호로서 샵, 해시, 파운드, 옥토쏘르프와 같이 여러가지 이름으로 불린다. 여기서는 샵으로 명칭을 통일하겠다. 파이썬에서 주석을 달려면 샵(#)기호를 사용하면 된다. 코드에 샵을 붙이면 해당라인에서 샵이후는 전부 주석으로 인식된다. 라인의 제일 첫부분에 샵을 입력하면 전체줄이 주석으로 인식되고, 코드 이후에 샵을 입력하면 샵 이후부터 주석으로 인식된다. 문자열 사이에 샵을 입력할 경우에는 문자열의 구성요소로 인식된다. 출력결과는 아래와 같다. 자바와 같은 다른 언어들에서는 여러줄을 주석 처리하는 방법을 가지고 있다. 하지만 파이썬에서는 여러줄을 주석처리하는 방법은 없다. 명시적인것이 낫다는 파이썬 철학에 따라, 위 이미지와 같이 한줄 한줄 정성스럽게 명시적으로 샵 기호를..

IT 2018.12.13

[파이썬 기초] 자료구조(5) - 기본자료구조를 이용한 복합자료구조 만들기

지금까지 리스트, 튜플, 딕셔너리, 셋과 같은 파이썬에서 기본적으로 제공하는 자료구조에 대해 알아보았다. 프로그래밍을 할 때 자료구조를 단독으로 사용하는 경우도 많지만 자료구조 여러개를 조합하여 복합적으로 사용하는 경우도 많다. 항목이 리스트로 구성된 튜플이나, 값이 리스트인 딕셔너리 등이 그 예가 될 수 있다. 어떤식으로 복잡한 자료구조를 구성할 수 있는지 한번 알아보자. 1. 리스트의 리스트 먼저 리스트를 항목으로 가지는 리스트를 만들 수 있다. 항목에 접근할 때는 2차원 배열과 같이 두개의 인덱스를 이용해 접근 할 수 있다. >>> a = [1,2] >>> b = [3,4] >>> c = [5,6] >>> d = [a,b,c] >>> d [[1, 2], [3, 4], [5, 6]] # 리스트를 항목..

IT 2018.12.12

[파이썬 기초] 자료구조(4) - 셋(set)

셋은 중복되지 않은 값을 순서없이 보관하는 자료구조이다. 항목이 중복되지 않고(유일하고), 순서가 없는 특성으로 볼때 딕셔너리의 키와 같다. 순서가 없고, 키가 존재하지도 않기때문에 어떤 특정한 값에 접근할 수가 없다. 단지 어떤항목이 존재하는지 않는지에 대한것을 파악하고자 할때 사용된다. 1. 셋 생성 셋을 생성할 때는 중괄호를 사용하거나 set()함수를 사용한다. 중괄호를 사용할 때는 중괄호 사이에 콤마로 구분된 값을 넣어주면 된다. 중복된 값을 입력하면 중복된 값은 삭제된다. >>> a_set = {1,3,5,7,9} >>> a_set {1, 3, 5, 7, 9} >>> b_set = {1,1,1,2,2,3} # 1을 3개, 2를 두개 입력했지만, 하나식만 저장된다. >>> b_set {1, 2, ..

IT 2018.12.10

[파이썬 기초] 자료구조(3) - 딕셔너리

파이썬 대표 자료구조의 하나인 딕셔너리를 살펴보자. 문자열과 리스트의 경우는 자료가 순차적으로 구성되어 있다. 그렇기때문에 오프셋을 이용해서 각 항목에 접근할 수 있었다. >>> t_list = ['a','b','c'] >>> t_list ['a', 'b', 'c'] >>> t_list[0] 'a' >>> t_list[1] 'b' 이런 방식은 특정 항목을 찾고자 할때 문제가 될 수 있다. 내가 'a'라는 값을 찾고 싶을때는 전체 리스트를 다 뒤져봐야 찾을 수 있다. 리스트가 몇개 안된다면 상관없겠지만, 그 수가 많아진다면 많은 시간이 소요될 수 있다. 특정값을 딱!하고 찾고 싶을때는 딕셔너리가 좋은 방안이 될 수 있다. 딕셔너리는 키와 값을 한쌍으로 항목을 관리한다. 그래서 키값을 알고 있으면 항목을 바..

IT 2018.12.05

[파이썬 기초] 자료구조(2) - 튜플

튜플은 리스트와 비슷한 자료구조이다. 가장 큰 차이는 리스트는 변경이 가능하지만, 리스트는 불변한다는 것이다. 더 풀어서 얘기하면, 리스트는 추가, 수정, 삭제가 가능하지만, 튜플은 한번 정의된 후에는 추가, 수정, 삭제를 할 수 없다. 그래서 튜플을 상수의 리스트라고 얘기하기도 한다. 1. 튜플 생성 튜플을 생성할 때는 변수에 여러개의 값을 콤마로 구분해서 할당하면 된다. 아래와 같이... >>> t_tuple = 'SUN','MON' >>> t_tuple ('SUN', 'MON') >>> type(t_tuple) 튜플의 정의를 더 명확하게 해주기 위해서 괄호를 추가해 주는것이 좋다. >>> t_tuple = ('SUN','MON') 2. 튜플 활용 튜플을 이용해 여러변수에 값을 한번에 할당할 수 있다..

IT 2018.12.04

[파이썬 기초] 자료구조(1) - 리스트

파이썬은 문자열, 정수, 부울, 부동소수점과 같은 기본데이터 타입외에 기본타입들이 결합된 리스트(list), 튜플(tuple), 딕셔너리(dict) 그리고 셋(set)이라는 자료구조를 가지고 있다. 리스트부터 하나씩 살펴보자. 1. 생성 리스트를 생성할 때는 list() 함수와 대괄호([])를 이용해서 다음과 같이 생성할 수 있다. >>> temp_list = list() # list() 함수 사용 >>> type(temp_list) # type() 함수를 사용하면 변수의 타입을 알 수 있다. >>> temp_list2 = [] # [] 대괄호 사용 >>> type(temp_list2) 2. 데이터 입력 append() 함수를 이용해 데이터를 입력하게 되면 그 순서를 그대로 유지하면서, 리스트의 끝에 항..

IT 2018.11.28

[파이썬 기초] 파이썬 문자열(4) - 유용한 문자열 함수들

파이썬에서는 문자열과 관련된 많은 함수들을 지원한다. 대표적인것을 몇개 살펴보도록 하자. 1. 문자열 길이 : len() 문자열의 길이를 알고 싶으면 len()함수를 사용한다. 문자열을 구성하는 문자의 개수를 알 수 있다. 문자열 뿐만 아니라 다른 시퀀스 타입(리스트, 튜플, 딕셔너리)에서도 사용가능하다. 시퀀스에 사용될 경우 각 시퀀스의 항목 개수를 리턴한다. >>> len('dongdongfather') # 문자열을 구성하는 문자 개수 리턴 14 >>> name_list ['Kang Hodong', 'Park Sangmin', 'Kim Yuna'] >>> len(name_list) # 리스트를 구성하는 항목의 개수 리턴 3 >>> len(('a','b','c','d')) # 튜플을 구성하는 항목의 개..

IT 2018.11.26

[파이썬 기초] 파이썬 문자열(3) - 문자열 나누기, 결합하기

파이썬에서 문자열을 리스트로 나누거나, 리스트를 문자열로 결합할 수 있다. 1. 문자열 나누기 : split() split() 메서드는 인자로 주어진 문자를 이용해 문자열을 분리하고, 그 결과를 리스트로 반환한다. 인자가 없이 호출했을 경우에는 줄바꿈, 스페이스, 탭을 사용해서 분리한다. >>> name = 'Kang Hodong,Park Sangmin,Kim Yuna' >>> name.split(',') # 콤마(,)를 인자로 줘서 콤마로 구분된 결과를 리스트로 출력 ['Kang Hodong', 'Park Sangmin', 'Kim Yuna'] >>> name.split() # 인자를 주지 않아서 공백으로 문자 구분. 예상치않은 결과 출력 ['Kang', 'Hodong,Park', 'Sangmin,Ki..

IT 2018.11.23
반응형