본문 바로가기

Backend/Python

Python 기본정보(2)

반응형
  • 시퀀스 객체 사용
    # 특정 값 존재 확인
    # value in sequence_object
    >>> a = [0, 1]
    >>> 1 in a
    true
    >>> 2 in a
    false
    # cf) in 대신 not in 을 사용하면 특정 값이 없는 지 확인
    
    # 시퀀스 객체 연결
    # sequence_object1 + sequence_object2
    >>> a = [0, 1]
    >>> b = [1, 2]
    >>> a + b
    [0, 1, 1, 2]
    # cf) 문자열도 연결 가능하지만 range는 그대로 연결 불가 list나 tuple로 변환 후 연결
    
    # 시퀀스 객체 반복
    # sequence_object * 3
    >>> [0, 1] * 3
    [0, 1, 0, 1, 0, 1]
    # cf) 문자열도 반복이 가능하지만 range는 그대로 반복 불가 list나 tuple로 변환 후 반복​
  • 시퀀스 객체 요소 개수
    # 모든 시퀀스 객체에 사용 가능
    >>> len(sequence_object)

  • 인덱스, 슬라이스
    - 모든 시퀀스 객체에 인덱스 지정 가능
    - 지정 하지 않으면 객체 전체가 불러짐
    - 인덱스를 음수로 지정하면 뒤에서 부터 접근
    - 인덱스로 접근하여 값 변경 가능
    - 리스트만 del을 이용해 인덱스로 접근해서 삭제 가능
    - 슬라이스
    # 일반적 슬라이싱
    # sequence_object[start_index : endindex + 1]
    >>> a = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
    >>> a[0:4]
    [0, 10, 20, 30]
    
    # 증가폭 이용 슬라이싱
    # sequence_object[start_index : endindex + 1 : gap]
    >>> a = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
    >>> a[2:8:3]
    [20, 50] # 2번 인덱스 ~ 7번 인덱스 3배수 위치 출력
    # cf) 증가폭에 음수를 사용하면 뒤에서 부터 출력되는데 이때 시작인덱스는 종료인덱스보다 커야한다
    
    # 인덱스 안쓰고 슬라이싱
    # 시작인덱스 : 0 / 종료인덱스 : 마지막인덱스 + 1 / 증가폭 : 전부
    >>> a = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
    >>> a[0:len(a)] # 시작 인덱스에 0, 끝 인덱스에 len(a) 지정하여 리스트 전체를 가져옴
    [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
    >>> a[:len(a)] # 시작 인덱스 생략, 끝 인덱스에 len(a) 지정하여 리스트 전체를 가져옴
    [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
    
    # 슬라이싱으로 값 할당
    >>> a = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
    >>> a[2:5] = ['a']    # 인덱스 2부터 4까지에 값 1개를 할당하여 요소의 개수가 줄어듦
    >>> a
    [0, 10, 'a', 50, 60, 70, 80, 90]
    # cf)
    >>> a = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
    >>> a[2:5] = ['a', 'b', 'c', 'd', 'e'] # 인덱스 2부터 4까지 값 5개를 할당하여 요소의 개수가 늘어남
    >>> a
    [0, 10, 'a', 'b', 'c', 'd', 'e', 50, 60, 70, 80, 90]
    
    >>> a = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
    >>> a[2:8:2] = ['a', 'b', 'c']    # 인덱스 2부터 2씩 증가시키면서 인덱스 7까지 값 할당
    >>> a
    [0, 10, 'a', 30, 'b', 50, 'c', 70, 80, 90]​
  • 딕셔너리
    # 기본 형식
    >>> lux = {'health': 490, 'mana': 334, 'melee': 550, 'armor': 18.72}
    >>> lux
    {'health': 490, 'mana': 334, 'melee': 550, 'armor': 18.72}
    
    # 중복 키가 있다면 나중 키에 대한 값만 유지
    >>> lux = {'health': 490, 'health': 800, 'mana': 334, 'melee': 550, 'armor': 18.72}
    >>> lux['health']    # 키가 중복되면 가장 뒤에 있는 값만 사용함
    800
    >>> lux    # 중복되는 키는 저장되지 않음
    {'health': 800, 'mana': 334, 'melee': 550, 'armor': 18.72}
    
    # 딕셔너리 키에는 리스트와 딕셔너리 자료형을 제외하고는 모든 자료형 사용 가능
    # 값에는 모든 자료형 사용 가능
    
    # dict사용법
    >>> 딕셔너리 = dict(키1=값1, 키2=값2)
    >>> 딕셔너리 = dict(zip([키1, 키2], [값1, 값2]))
    >>> 딕셔너리 = dict([(키1, 값1), (키2, 값2)])
    >>> 딕셔너리 = dict({키1: 값1, 키2: 값2})​
    
    >>> 딕셔너리[키] # 키에 매칭되는 값 출력
    >>> 딕셔너리[키] = 값 # 키에 새로운 값 할등
    >>> 키 in 딕셔너리 # 키 포함 여부 확인
    >>> 키 not in딕셔너리[키] # 키 제외 여부 확인
    >>> len(딕셔너리) # 키 갯수 출력

 

 

 

 

반응형

'Backend > Python' 카테고리의 다른 글

[Python] Django vs Flask 비교  (0) 2024.03.26
CSV파일 업로드 python코드  (0) 2024.01.12
배열을 JSON으로 변경  (0) 2023.12.13
Python 기본 정보(1)  (0) 2023.12.08
python 시작하기  (0) 2023.12.04