Python 자료형


자료형

  • 문자열 인덱싱
    • a = "Life is too short, You need Python"
      이라는 문자열을 지정하면 파이썬에서는 각 문자마다 번호를 매긴다.
      Life is too short, You need Python
      0           1 2           3
      0123456789012345678901234567890123
    • 첫번 째의 L을 0으로 지정하여 순서대로 지정된다.
    • a = "Life is too short, You need Python"
      a[3]
      출력 : 'e'
    • 이 외에도 -기호를 이용하면 뒤에서부터 읽기 시작한다. 0과 -0은 같기 때문에 -는 -1부터 시작된다.
  • 문자열 슬라이싱
    • 문자열 인덱싱을 이용하여 단어들을 뽑아 내는 것이다.
    • 하나씩 뽑는 것도 가능하며, a[시작번호:끝번호] 처럼 여러 개를 뽑는 것도 가능하다.
    • 시작번호나 끝번호를 생략하면 시작부터 끝번호까지 혹은 시작번호부터 끝까지 출력이 된다.
    • 이를 이용하여 문자열을 바꾸려고 한 문자의 인덱싱을 활용하여 바꾸면 바뀌지 않는다. 왜냐하면 문자열은바뀌지않는 자료형이기 때문이다.
    • 하지만 슬라이싱을 이용하여 바꾸면 바꿀 수 있다. 예를들어
      >>> a = "Pithon"
      >>> a[:1] 'P'
      >>> a[2:] 'thon'
      >>> a[:1] + 'y' + a[2:]
      'Python'
  • 문자열 포매팅
    • printf 방식과 비슷하며 %다음에 원하는 문자를 입력하면 된다. 문자는 변수나 상수 모두 가능하다.
    • 여러개일 경우 괄호()와 콤마(,)를 이용한다.
  • 문자열 관련 함수
count
문자 개수 세기
find
위치 알려주기(없으면 -1 반환)
index
위치 알려주기(없으면 오류)
join
문자열 삽입
upper
소문자 -> 대문자 변환
lower
대문자 -> 소문자 변환
lstrip
왼쪽 공백 지우기
rstrip
오른쪽 공백 지우기
strip
양쪽 공백 지우기
replace
문자열 바꾸기
  • 고급 문자열 포매팅
    • format 함수를 이용하여 사용이 가능하다
    • >>> "I eat {0} apples".format(3)
      'I eat 3 apples'
      >>> "I eat {0} apples".format("five")
      'I eat five apples'
      >>> number = 3 >>> "I eat {0} apples".format(number) 
      'I eat 3 apples'
    • {0}을 대신해서 인덱스를 이요하는 것도 가능하다.
      >>> "I ate {number} apples. so I was sick for {day} days.".format(number=10, day=3)
      'I ate 10 apples. so I was sick for 3 days.'
    • 왼쪽 정렬 - ":<"
      오른쪽 정렬 - ":>
      가운데 정렬 - ":^"
      ex) >>> "{0:^10}".format("hi")
      ' hi '
    • 단, 정렬을 할때 공백대신 문자열을 넣어서 정렬할 수 있다. <,>,^ 바로앞에 문자 값을 넣어야 한다.
      ex)>>> "{0:=^10}".format("hi")
      '====hi===='
    • 소수점은 문자열 표현 방식에 썼던 것 처럼 자리수 표현을 해주면 된다.
리스트 자료형
  • 리스트는 간단하게 []와 요소들 사이에 ,를 넣어주는 방식이다.
  • 리스트 역시 인덱싱과 슬라이싱 사용 가능
  • 슬라이싱은 끝문자를 포함 하지 않는다.
    [a:b] -> a <= x < b
  • 리스트 안에 리스트를 넣을 수 있으며, 그 또한 인덱싱이 가능하다.
  • 리스트 연산자
    • 리스트 더하기(+) : 리스트를 합치는 기능
    • 리스트 반복하기(*) : 리스트를 반복시킨다
  • 리스트 수정
    • 리스트 수정시 a[1:2] = ['a','b','c']로 수정하는 것과 a[1] = ['a','b','c']로 수정하는 것은 전혀 다르다.
    • a[1]은 리스트의 두 번째 요소를 ['a','b','c']로 바꾼다는 말이고, a[1:2]는 a[1]과 a[2]사이의 리스트를 ['a','b','c',]로 바꾼다는 말이다.
    • a[시작문자:끝문자] = [ ] 를 사용하면 시작부터 끝문자-1까지의 요소를 삭제할 수 있다.
    • 이 외에도 del a[x], del[x:y]를 이용해 삭제가 가능하다.
    • del은 파이썬의 자체적인 삭제 함수이며 del 객체 방식으로 사용
  • 리스트 관련 함수

append(x)리스트에 요소 추가맨 뒤에 x 추가
sort리스트 정렬요소를 순서대로 정렬(알파벳 순도 가능)
reverse리스트 뒤집기리스트를 순서대로 정렬한뒤 역순이 아닌 단순한 거꾸로 뒤집기
index(x)위치 반환값이 없으면 오류 발생
insert(a,b)요소 삽입a위치에 b를 삽입
remove(x)요소 제거첫 번째 x를 제거
pop요소 꺼내기맨 마지막 요소 출력 후 삭제
count(x)요소 개수 세기x의 숫자를 조사해 개수를 출력
extend(x)리스트 확장원래 리스트에 x의 리스트를 더함

튜플 자료형
  • 리스트와 유사하나 [과]가 아닌 (과)을 이용한다.(괄호는 생략 가능)
  • 값을 바꿀 수 없다.
  • 튜플도 인덱싱, 슬라이싱, 더하기, 반복하기를 리스트와 동일하게 사용 가능하다.

딕셔너리 자료형
  • Key와 Value를 한 쌍으로 갖는 자료형
  • Hash와 같은 맥락이다.
  • 기본적인 형태는
    {Key1:Value1, Key2:Value2, Key3:Value3 ...}
  • Value에는 리스트도 넣을 수 있다.
  • 딕셔너리를 생성해 놓은 상태에서는
    a[Key] = Value 를 통해서 쌍을 추가할 수 있다.
  • del a[Key] 를 통해서 딕셔너리 삭제가 가능하다.
  • 딕셔너리는 Key를 기반으로 Value를 추출하는 것이기 때문에 중복되자 않게 사용하는 것이 중요하다.
  • 딕셔너리 관련 함수

keysKey리스트 만들기
dict_keys에 Key 값을 모아 놓은 객체 리턴
리스트로 변환하려면 list(a.keys())를 활용
valuesValue리스트 만들기dict_values에 Value 값을 모은 객체를 리턴
itemsKey, Value 쌍 얻기dict_items에 Key와 Value 쌍을 객체로 리턴
clear쌍 모두지우기모든 요소 삭제
get(Key)Key로 Value얻기
Key에 해당하는 Value 리턴
존재하지 않는 Key는 오류 발생 시킴
Key in Dictionary딕셔너리에 Key 있는지 조사Boolean값으로 존재 유무 리턴

집합 자료형
  • 집합에 관련된 것들을 쉽게 처리하기 위해 만든 자료형이다. 
  • >>> s1 = set([1,2,3])
    >>> s1
    {1, 2, 3}
    위와 같은 방식으로 사용한다. 문자열도 저장이 가능하다.
  • 특징으로는
    • 중복을 허용하지 않는다.
    • 순서가 없다.
  • 이러한 특징 때문에 인덱싱을 통해 자료 값을 얻을 수 없다. 
  • 중복을 허용 하지 않는 특징은 자료형 중복을 제거하기 위한 필터 역할로도 쓰인다.
  • 집합계산
    " & " - 교집합
    " | "  - 합집합
    " - "  - 차집합
add(x)값 한개 추가
update([a,b,c])값 여러개 추가
remove(x)값 제거
 자료형의 참 거짓
  • 튜플이나 리스트에서 비어있으면 거짓, 요소가 있으면 참을 출력한다.

변수
  • 파이썬은 다른 언어와 달리 자료형을 명시하지 않아도 저장된 값을 스스로 판단해 자료형을 알아낸다.
  • 파이썬에서 a = 3이라고 저장하면 상수가아닌 정수형 객체로 저장되어 바로 함수를 사용할 수 있다.
  • 변수는 del 함수로 삭제가 가능하지만, 굳이 삭제할 필요는 없다.
  • 리스트를 복사할 때는 같은 값을 가리키기 때문에 원본을 수정하면 복사된 값도 수정된다.
  • 이와 딜리 복사해 넣으면서 다른 리스트를 가리키게 하는 방법은
    • [:] 를 이용한다.
      a = b[:]
    • copy 모듈을 이용한다.
      from copy import copy
      b = copy(a)



댓글

이 블로그의 인기 게시물

KV Language(Pycharm에 Highlighting 기능 설정하기)

Python 코딩 공부 시작과 Github 활용

Kivy Tutorial - PingPong