2020. 3. 16. 11:45

python data type

1. 숫자형

2. 문자열

3. 리스트

4. 튜플

5. 딕셔너리

6. 집합(set)

7. 불

8. 변수

 

 

1. 숫자형

  • 정수형 
    • >>> a = 123
  • 실수형 
    • >>> a = 1.7
  • 8진수
    • >>> a = 0o777
  • 16진수
    • >>> a = 0xCDE
  • 연산 (a=3, b=2)
    • a + b // 5
    • a - b // 1
    • a * b // 6
    • a / b // 1.5
    • a ** b // 9
    • a % b // 1
    • a // b // 1

 

2. 문자열

  • 문자열 생성
    • "string"
    • 'str'
    • """string""" // 여러줄인 문자열 입력시
    • '''string''' // 여러줄인 문자열 입력시
  • 문자열 연산
    • "abc" + "def" // "abcedf"
    • "abc" * 2 // "abcabc"
    • len("abc") // 3
  • 문자열 인덱싱
    • a = "this is string" // a[5] = 'i' , a[-2] = 'n' 
  • 문자열 슬라이싱
    • a = "this is string"
    • a[0:5] = "this i"
    • a[3:] = " s is string"
    • a[:-2] = "this is stri"
  • 문자열 포매팅(formatting)
    • "this is %s" %string // 'this is string'
    • "%d is three" %3 // '3 is number'
    • "{0} is {1}" .format(3, "number") // '3 is number'
  • 문자열 내장함수
    • a = "apple"; a.count('p') // 2 : p의 갯수
    • a = "apple"; a.find('p') // 1 : 첫번째 p의 인덱스
    • "," .join('abcd') // 'a,b,c,d' : 문자열 의 각각의 문자 사이에 "," 삽입
    • a = "     bc"; a.lstrip() // a="bc" : 문자열의 가장 왼쪽 공백 제거
    • a = "bc      "; a.rstrip() // a="bc" : 문자열의 가장 오른쪽 공백 제거
    • a = "  bc  ";  a.strip() // a="bc" : 문자열 양쪽 공백 제거
    • a = "abc"; a.replace("bc", "ee") // a= "aee" : 문자열 바꾸기
    • a = "this is string"; a.split() // ["this", "is", "string"] 공백을 기준으로 문자열 나눔

 

 

3. 리스트

  • 리스트생성
    • a = [ 1, "abc", [ 2, "def"]]
  • 리스트 인덱싱
    • a[2][1] // "def"
    • a[0] + a[2][0] // 3
  • 리스트 슬라이싱
    • a[1: ] // ["abc", [2,"def"]]
  • 리스트 연산
    • a = [1,2,3]; b[4,5,6]; a+b // [1,2,3,4,5,6]
    • a = [1,2,3]; len(a) // 3
  • 리스트 수정
    • a = [1,2,3]; a[1] = 4 // [1,4,3]
  • del함수 - 요소삭제
    • a = [1,2,3]; del a[1] // [1,3]
  • 리스트내장함수
    • a = [1,2,3]; a.ppend(4) // [1,2,3,4]
    • a = ['c', 'a', 'a']; a.sort() // ['a', 'b', 'c']
    • a = [1,2,3]; a.index(2) // 1
    • a = [1,2,3]; a.insert(1, 'a') // [1,'a',2,3]
    • a = [1,2,3,4,3]; a.remove(3) // [1,2,4,3]
    • a = [1,2,3]; a.pop() // 3, a = [1,2]

 

4. 튜플

  • 특징 : 요소값의 수정이 불가능
  • 튜플 생성
    • a = (1, 'a', ( 2, 'bc'))
  • 튜플 인덱싱
    • a[1] // 'a'
    • a[2][0] // 2
  • 튜플 슬라이싱
    • a[1:] // ('a',(2,'bc'))
  • 튜플 연산
    • a[0] + a[2][0] // 3
    • len(a) // 3

 

5. 딕셔너리

  • 정의 : '키-값'의 쌍으로 이루어진 자료형
  • 딕셔너리 생성
    • a = { 'name' : 'kim', 'age' : 22, 'list' : [1,2,3] }
  • 딕셔너리 쌍 추가
    • a['job'] = 'police' // a = { 'name' : 'kim', 'age' : 22, 'list' : [1,2,3], 'job' : 'police' }
  • 딕셔너리 쌍 삭제
    • del a['age'] // a = { 'name' : 'kim', 'list' : [1,2,3], 'job' : 'police' }
  • 딕셔너리 요소 접근
    • a['list] // [1,2,3]
  • 내장함수
    • 키 리스트 만들기 1 : a.keys() // dict_keys(['name', 'age', 'list']) : 키값을 가지고 있는 "객체" 반환
    • 키 리스트 만들기 2 : list(a.keys()) // ['name', 'age', 'list'] : 키 값을 가지고 있는 "리스트"반환
    • 값 리스트 만들기 1 : a.values() // dict_values(['kim', 22, [1,2,3]]) 객체반환
    • 리스트 만들기 2 :  list(a.values()) // ['kim', 22, [1,2,3] ]
    • 키-값 쌍 얻기 1 : a.items() // dict_items( [ ('name', 'kim'), ('age', 22), ('list', [1,2,3] ) ] )
    • 키-값 쌍 얻기 2 : list(a.items()) // [('name', 'kim'), ('age', 22), ('list', [1,2,3] ) ]
    • 키-값 쌍 모두 지우기 : a.clear()
    • 키로 값 얻기 : a.get('name') // 'kim'
    • 해당 키가 딕셔너리 안에 있는지 검사 : 'name' in a // true 

 

6. 집합(set)

  • 정의 : 집합 관련 연산을 쉽게 처리하기 위해 만들어진 자료형으로 고유한 특징을 가진다.
  • 특징 
    • 중복을 허용하지 않는다
    • 순서가 없다 -> set자료형에 저장된 값을 인덱싱으로 접근하려면 리스트나 튜플로 변환 후 접근
  • 생성
    • s1 = set([1,2,3]); s2 = set([3,4,5])
  •  연산
    • 교집합 : s1 & s2 or s1.intersection(s2) // { 3 }
    • 차집합 : s1- s2 or s1.difference(s2) // { 1, 2 }
    • 합집합 : s1 | s2  or s1.union(s2) // { 1, 2, 3, 4, 5 }
  • 내장함수
    • 값 추가 : s1.add(4) // { 1, 2, 3, 4 }
    • 값 여러개 추가 : s1.update([4,5]) // { 1, 2, 3, 4, 5 }
    • 특정값 제거 : s1.remove(2) // { 1, 3 }
  • 활용법
    • 리스트로 변환 :  l1 = list(s1); l1[1] // 2
    • 튜플로 변환 : t1 = tuple(s1); t1[1] // 2

 

7. 불

  • 정의 : 침과 거짓을 나타내는 자료형
  • 생성
    • a = True
    • b = False
  • 자료형의 참과 거짓 : 문자열, 리스트, 튜플, 딕셔너리 등의 값이 비어 있으면 거짓이 되고, 비어 있지 않으면 참
    • False : "", [], (), {}, 0, None
    • True : "a", [0], (1), {2:3}, -1 (영이 아닌 숫자)
  • 불연산
    • bool([]) // False
    • bool((0)) // True

 

8. 변수

  • 정의 : 객체(자료형)가 저장된 메모리 주소를 가리키는 것
  • 메모리 주소 확인 : id(a) // 123123243
  • 복사
    • 단순 복사 : 동일한 객체를 가리킴
      • a = [ 1,2,[1,2]]; b= a; id(a) == id(b) // True 
    • 얕은 복사 : 복합객체(껍데기)만 복사, 그 내용은 동일한 객체
      • import copy; b = copy.copy(a); b[0] =3; b[2].append(3);
      • print(a) // [1,2,[1,2,3]]
      • print(b) // [3,2,[1,2,3]]
    • 깊은 복사 : 복합객체 복사 + 그 내용도 재귀적으로 복사
      • import copy; b = copy.deepcopy(a); b[0] = 3; b[2].append(3);
      • print(a) // [1,2,[1,2]]
      • print(b) // [3,2,[1,2,3]]
Posted by yongminLEE