AI교육과정 - Python.2

단비·2023년 1월 13일
0

AI교육과정

목록 보기
54/69
  1. 리스트(list)

    • 여러가지 데이터타입의 데이터를 콤마로 구분하여 대괄호로 감싼 자료구조
    li1 = [1, 3, 5, 7, 9]
    li2 = list([1, 3, 5, 7, 9])
    li3 = ['김사과', '반하나', '오렌지','이메론']
    li4 = [10, 5.5, '김사과', True]
    li5 = [10, 5.5, '김사과', ['apple','banana']] # 이중배열
  2. 리스트 인덱싱

    li1 = [1, 3, 5, 7, 9]
    print(li1[-1]) # 9
    print(li1[0] + li1[-1]) # 10
    
    li2 = ['김사과','오렌지','반하나',['🍗','🍔','🥵']]
    print(li2[-1]) # ['🍗','🍔','🥵']
    print(li2[-1][-2]) # 🍔
    
    li3 = [1, 3, 5, ['김사과','오렌지','반하나',['🍗','🍔','🥵']]]
    print(li3[-1][-2])# 반하나
    print(li3[-1][-1][-2]) # 🍔
  3. 리스트 슬라이싱

    li4 = [10, 20, 30, 40, 50]
    print(li4[0:3]) # 10, 20, 30
    
    #같은 주소값을 바라보게됨(데이터 내용도 공유됨)
    li5 = li4
    li5[0] = 100
    print(li5) # [100, 20, 30, 40, 50]
    print(li4) # [100, 20, 30, 40, 50]
    
    li6 = [10, 20, 30, ['김사과','오렌지','반하나'],40,['🍺','🫣']]
    print(li6[3:6]) # [['김사과', '오렌지', '반하나'], 40, ['🍺', '🫣']]
    print(li6[5][:1]) # ['🍺']
  4. 리스트 연산자

    • 리스트에 *와 +는 적용이 가능하나, - 등은 불가능(에러남)
    li7 = [10, 20, 30]
    li8 = [40, 50, 60]
    print(li7 + li8) # [10, 20, 30, 40, 50, 60]
    print(li8 + li7) # [40, 50, 60, 10, 20, 30]
    
    print(li7 * 3) # [10, 20, 30, 10, 20, 30, 10, 20, 30]
    print('😇' * 30) # 😇😇😇😇😇😇😇😇😇😇😇😇😇😇😇😇😇😇😇😇😇😇😇😇😇😇😇😇😇😇
    
    li9 = [10,20,30]
    li9[1] = '😇' # [10, '😇', 30]
    print(li9[0] + li9[2]) # 40
  5. 리스트의 수정/삭제

    • 리스트 수정 시 슬라이싱과 인덱싱 방식의 차이
      • 슬라이싱: 리스트에 데이터가 포함
      • 인덱싱: 리스트 안에 리스트를 포함
    • []를 저장 시 해당 값이 삭제됨
    • del: 해당 요소 삭제
    li10 = [10, 20, 30]
    li10[1] = 100
    print(li10) # [10, 100, 30]
    
    #슬라이싱을 이용해 데이터를 추가한 경우 리스트에 데이터가 포함
    li10[1:2] = ['🤗','🫠'] # [10, '🤗', '🫠', 30]
    
    #인덱싱을 이용해 리스트 데이터를 추가한 경우 리스트 안에 리스트를 포함
    li10[1] = ['🤗','🫠'] # [10, ['🤗', 🫠'], 30]
    
    li10[1:3] = []  # 빈 리스트를 저장 -> 삭제
    print(li10) # [10]
     
    del li10[0] # 인덱스 0번 요소 삭제
    print(li10) # []
  6. 리스트 함수

    • append(): 리스트 마지막 자리에 데이터를 추가
    li11 = [10,20,30]
    li11.append(100) # [10,20,30,100]
    li11.append([40,50]) # [10, 20, 30, 100, [40, 50]]
    
    li11 = li11 + [60,70] # li11 += [60,70]
    print(li11) # [10, 20, 30, 100, [40, 50], 60, 70]
    • extend(): 리스트에 요소를 더함
    li12 = [10, 20, 30]
    li12.extend([100,200]) # [10, 20, 30, 100, 200]
    • pop(): 리스트 마지막에 저장된 데이터를 반환하고 해당 데이터는 삭제
    li13 = [10, 20, 30, 40, 50]
    li13.pop() # [10, 20, 30, 40]
    temp = li13.pop() # 40
    print(li13) # [10, 20, 30]
    • remove(): 매개 변수로 전달된 데이터를 제거, 같은 데이터가 여러개 있을 경우 처음 출현하는 데이터를 지움
    li14 = [10,20,30,40,50,20,40]
    li14.remove(20) # [10, 30, 40, 50, 20, 40]
    • insert(): 리스트의 특정 위치(인덱스)에 데이터를 삽입
    li15 = [10, 20, 30]
    li15.insert(1,100) # [10, 100, 20, 30]
    • index(): 리스트에 저장된 데이터가 있을 경우 위치를 인덱스로 반환(없으면 에러)
    li16 = [10, 20, 30]
    print(li16.index(30)) # 2
    print(li16.index(100)) # 해당 값이 없으니 오류 발생
    • reserve(): 리스트에 저장된 데이터를 반대 순서로 전환
    li17 = ['김사과','오렌지','반하나','이메론']
    li17.reverse() # ['이메론', '반하나', '오렌지', '김사과']
    • sort(): 리스트에 저장된 데이터를 오름차순 또는 내림차순으로 정렬
      • sort() 괄호 안에 reverse=True 입력 시 내림차순 정렬
      • 텍스트의 경우 아스키코드에 의해 정렬
    li18 = [10,40,30,100,90,50]
    li18.sort() #오름차순
    print(li18) # [10, 30, 40, 50, 90, 100]
    li18.sort(reverse=True) #내림차순
    print(li18) # [100, 90, 50, 40, 30, 10]
    
    li18 = ['Apple','apple','orange','banana','melon']
    li18.sort() # ['Apple', 'apple', 'banana', 'melon', 'orange']
    • count(): 리스트에 포함된 특정 데이터 개수를 반환
    li19 = [10,20,30,50,20,40,30,20]
    	print(li19.count(20)) # 3
    print(li19.count(15)) # 0
    • len(): 요소의 갯수를 반환, 표준 파이썬 함수

  1. 튜플(Tuple)

    • 리스트와 비슷하지만 수정, 삭제가 불가능함
    tu2 = (1,3,5,7)
    print(tu2[0]) # 1
    tu3 = 1, 3, 5, 7 # (1,3,5,7)
    tu4 = ('apple','banana',['🍑','🌈'])
    print(tu4) # ('apple','banana',['🍑','🌈'])
    print(type(tu4)) # Tuple
    tu5[2][0] = '◀︎' # ('apple', 'banana', ['◀︎', '🌈'])
  2. 튜플의 삭제

    • del()
    tu6 = (1,2,'apple','banana')
    del tu6 # 이후 출력 시 오류 발생
  3. 튜플의 인덱싱과 슬라이싱 연산

    • 인덱싱
    tu8 =(1,2,'apple','banana')
    print(tu8[0]) # 1
    • 슬라이싱
    tu8 =(1,2,'apple','banana')
    print(tu8[1:]) # (2, 'apple', 'banana')
    print(tu8[1:3]) # (2, 'apple')
    • 덧셈(연결)
    tu8 =(1,2,'apple','banana')
    tu9 = (30,40)
    print(tu8 + tu9) # (1, 2, 'apple', 'banana', 30, 40)
    • 곱셈(반복)
    tu9 = (30,40)
    print(tu9*3) # (30, 40, 30, 40, 30, 40)
    • 요소의 갯수
    tu8 =(1,2,'apple','banana')
    print(len(tu8)) # 4
  4. 튜플의 정렬

    • sorted(): 데이터를 정렬. 파이썬 기본 함수
      • 튜플은 데이터 변경,삭제가 불가하기 때문에 sort를 이용해 정렬을 변경한 후 저장할 수가 없음. sorted를 이용하면 정렬 후 list형으로 변환해주기 때문에 tuple로 사용을 원할 경우 하기와 같이 튜플형으로 변경해줘야함
        • tuple(sorted(tu10))
      • sorted(정렬할 데이터, key 파라미터, reverse 파라미터)
        - key 옵션 (key 파라미터): 어떤 것을 기준으로 정렬할 것인지
        - reverse 옵션 (reverse 파라미터): 오름차순, 내림차순
        - default == reverse=False : 오름차순
    tu10 = (1,3,2,0)
    tu10.sort() #튜플은 sort() 메소드가 존재하지 않음
    tu11 = sorted(tu10) # [0, 1, 2, 3]
    print(type(tu11)) # list

  1. 제어문
    • 프로그램의 흐름을 제어하는 문장
    1. 조건문
      • if 문
        if 조건식(결과가 True 또는 False가 나오는 문장): 
        		조건식이 True인 경우 실행할 문장
      • if ~ else 문
        if 조건식(결과가 True 또는 False가 나오는 문장): 
        		조건식이 True인 경우 실행할 문장 
        else: 
        		조건식이 False인 경우 실행할 문장
      • if ~ elif ~ else 문
        if 조건식1(결과가 True 또는 False가 나오는 문장): 
        		조건식1True인 경우 실행할 문장 
        elif 조건식2(결과가 True 또는 False가 나오는 문장): 
        		조건식2True인 경우 실행할 문장 
        else: 
        		조건식이 False인 경우 실행할 문장
    2. 논리 연산자
      • AND
        • A and B
        • 양쪽 두 식의 값이 모두 True인 경우 결과가 True 가 되는 연산자
          AB결과
          TrueTrueTrue
          TrueFalseFalse
          FalseTrueFalse
          FalseFalseFalse
      • OR
        • A or B
        • 양쪽 두 식의 값이 하나라도 True 인 경우 결과가 True가 되는 연산자
          AB결과
          TrueTrueTrue
          TrueFalseTrue
          FalseTrueTrue
          FalseFalseFalse
  2. 반복문
    • 대입 연산자
      • =, +=, -=, *-, /=, %=
      • 왼쪽에 저장된 값과 오른쪽에 저장된 값을 연산한 뒤, 다시 왼쪽에 대입
    • while 문
      while 조건식: 
      		조건식이 True인 동안 반복할 문장 
      		…
    • for 문
      • range(): 범위를 생성하는 함수
        - range(시작인덱스, 종료값+1 인덱스, 증가값)
        - 시작인덱스의 기본값은 0, 증가값은 1, 종료값은 무조건 기입해줘야함

        for 변수 in 객체(범위):
        	  반복할 문장
        	  ...
        
        num = range(0, 10, 1) # range(0, 10)
        for i in num:
          print(i,end=' ') # 0 1 2 3 4 5 6 7 8 9
        for i in range(0, 10, 1):
          print(i,end=' ') # 0 1 2 3 4 5 6 7 8 9
        for i in range(10): # 종료값
          print(i,end=' ') # 0 1 2 3 4 5 6 7 8 9
        for i in range(0, 10): # 시작값, 종료값
          print(i,end=' ') # 0 1 2 3 4 5 6 7 8 9

  • 딕셔너리(Dictionary)
    • 대응관계를 나타내는 자료형으로 key와 value라는 것을 한 쌍으로 갖는 형태

    • 하나의 딕셔너리의 key는 중복될 수 없음

    • 하나의 딕셔너리의 value는 중복될 수 있음

      dic3 = {'no':1, 'userid':'apple', 'name':'김사과', 'hp':'010-1111-1111'}
      print(dic3['userid']) # apple
    • 데이터 추가 및 삭제

      dic4 = {1: 'apple'} # {1: 'apple'}
      dic4[100] = 'orange' # {1: 'apple', 100: 'orange'}
    • keys(): key 리스트를 반환

      dic3 = {'no':1, 'userid':'apple', 'name':'김사과', 'hp':'010-1111-1111'}
      dic3.keys() # dict_keys(['no', 'userid', 'name', 'hp'])
    • values(): value 리스트를 반환

      dic3.values() # dict_values([1, 'apple', '김사과', '010-1111-1111'])
    • items(): key와 value를 한 쌍으로 묶는 튜플을 반환

      dic3.items()
      #dict_items([('no', 1), ('userid', 'apple'), ('name', '김사과'), ('hp', '010-1111-1111')])
    • get(): key를 이용해서 value를 반환

      • key를 통해 값을 가져오는 경우 키가 존재하지 않으면 에러가 나지만, get을 이용한 경우 None으로 출력됨

      • 두번째 파라미터에 None 값일 때 반환할 값을 입력할 수 있음

        dic3.get('userid') # apple
        
        dic3['age'] # 키가 존재하지 않으면 에러
        print(dic3.get('age')) # None
        print(dic3.get('age', '나이를 알 수 없음')) # 나이를 알 수 없음
    • in: key가 딕셔너리 안에 있는지 확인

      'name' in dic3 # True
      'age' in dic3 # False
    • 셔너리와 for

      • 키 복사

        dic3 = {'no':1, 'userid':'apple', 'name':'김사과', 'hp':'010-1111-1111'}
        
        for i in dic3:
          print(i, end=' ') # no userid name hp
        
        for i in dic3.keys():
          print(i, end=' ') # no userid name hp
      • 값 복사

        for i in dic3.values():
          print(i, end=' ') # 1 apple 김사과 010-1111-1111
        
        for i in dic3:
          print(dic3[i], end=' ') # 1 apple 김사과 010-1111-1111
        
        for i in dic3:
          print(dic3.get(i), end=' ') # 1 apple 김사과 010-1111-1111
profile
tistory로 이전! https://sweet-rain-kim.tistory.com/

0개의 댓글