파이썬 기초 문법

    파이썬 기초 문법

    문자열 길이 구하기 

    - len()


     

    문자열 슬라이싱[:]

    [:5] : 앞에서 부터 4번째까지

    text = 'helloWorld'
    
    result = hello[:5]
    
    print(result)
    
    #결과는 hello

    [5:] 5번째 부터 끝까지

    text = "helloWorld"
    
    result = text[5:]
    
    print(result)
    
    # 결과는 World

    [2:4] 2번째 부터 3번째까지

    text = "helloWorld"
    
    result = text[2:4]
    
    print(result)
    
    # 결과는 ll

     

    문자열 자르기

    email = test@google.com
    
    result = email.split('@')[1].split('.')[0]
    
    print(result)
    
    # 결과는 google

     

    리스트

    a_list = [1, '2', False]
    
    # 추가
    
    a_list.append(99)
    
    print(a_list)
    
    #결과는 [1, '2', False, 99]

     

    리스트 컴프리헨션

    - 대괄호 안에 조건문과 반복문을 적용하여 리스트 초기화

    a [i for i in range(10)]
    
    print(a)
    
    # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    array = [i for i in range(20) if i%2 ==1]
    
    print(array)
    
    # 0부터 19까지중 홀수만 나옴
    array = [i*i for i in range(1, 10)]
    
    print(array)
    
    # 1부터 9까지 제곱 값
    # 1, 4, 9, 16 ...

     

    자주쓰이는 함수

    함수명 사용법 설명 시간 복잡도
    append() 변수명.append() 리스트에 원소를 하나 삽입 O(1)
    sort() 변수명.sort() 오름차순 정렬 O(NlogN)
    reverse() 변수명.sort(reverse=True) 내림차순 정렬 O(N)
    insert() insert(삽입할 위치 인덱스, 삽입할것) 리스트의 원소의 순서를 모두 뒤집는다 O(N)
    count() 변수명.count(특정 값) 리스트에서 특정한 값을 가지는 데이터의 개수를 셀때 사용 O(N)
    remove() 변수명.remove(특정값) 특정한 값을 갖는 원소를 제거하는데, 값을 가진 원소가 여러 개면 하나면 제거됨 O(N)

     

    리스트에서 특정값을 가지는 원소 모두 제거하기

    a = [1,2,3,4,5,5]
    
    remove_set = {3,5}
    
    result = [i for i in a if i not in remove_set]
    
    print(result)
    
    # remove_set에 있는 3과 5가 제거되고 나오게 된다.

     

     딕셔너리 O(1)

    - json처럼 key value로 이루어져 있는 자료형

    - keys()나 values()로 키나 값을 리스트 형태로 값만 뽑을 수 있다.

     

    집합 자료형

    # 초기화 방법1
    data = set([1, 1, 2, 3, 4, 4, 5])
    print(data)
    
    # 초기화 방법2
    data = {1, 1, 2, 3, 4, 4, 6}
    print(data)
    
    # 결과 두가지 모두 {1, 2, 3, 4, 5}

     

    집합 자료형의 연산

    a = set([1, 2, 3, 4, 5])
    b = set([3, 4, 5, 6, 7])
    
    # 합집합
    print(a|b)
    
    # 교집합
    print(a&b)
    
    # 차집합
    print(a-b)

     

    data = set([1, 2, 3])
    print(data)
    
    # 새로운 원소추가
    data.add(4)
    print(data)
    # {1, 2, 3, 4}
    
    # 새로운 원소 여러 개 추가
    data.update([5, 6])
    print(data)
    # {1, 2, 3, 4, 5, 6}
    
    # 특정한 값을 갖는 원소 삭제
    data.remove(3)
    print(data)
    # {1, 2, 4, 5, 6}

    문자열 입력받기

    n, m, k = map(int, input().split())
    
    print(n, m, k)
    
    # 빠르게 입력받는 방법
    import sys
    
    # 문자열 입력 받기
    data = sys.stdin.readline().rstrip()
    print(data)

    내장 함수에서 자주 사용되는 람다 함수

    array = [('홍길동', 50), ('이순신', 32 ),('아무개', 74)]
    
    def my_key(x):
    	return x[1]
    
    print(sorted(array, key=my_key))
    print(sorted(array, lambda x: x[1]))
    
    #  [('이순신', 32 ), ('홍길동', 50), ('아무개', 74)]

     

    여러 개의 리 스트에 적용

    list1 = [1, 2, 3, 4, 5]
    list2 = [6, 7, 8, 9, 10]
    
    result = map(lambda a,b : a+b, list1, list2)
    
    print(result)
    
    # [7, 9, 11, 13, 15]

     

    자주 사용되는 내장함수

    #sum
    result sum([1, 2, 3, 4, 5])
    print(result)
    # 15
    
    #min(), max()
    min_result = min(7, 3, 5, 2)
    max_result = max(7, 3, 5, 2)
    print(min_result, max_result)
    # 2 7
    
    
    #eval()
    result = eval("(3+5)*7")
    print(result)
    # 56
    
    # sorted
    result = sorted([9, 1, 3, 2, 5])
    reverse_result = sorted([9, 1, 3, 2, 5], reverse = True)
    print(result)
    print(reverse_result)
    
    # [1, 2, 3, 5, 9]
    # [9, 5, 3, 2, 1]
    
    #sorted() with key
    array = [('홍길동', 35), ('이순신', 75), ('아무개', 50)]
    result = sorted(array, key = x:x[1], reverse = True)
    print(result)
    # [('홍길동', 35), ('아무개', 50), ('이순신', 75)]

     

    순열과 조합

    from itertools import permutations
    
    data = ['A', 'B', 'C']
    
    result list(permutations(data, 3))
    print(result)
    
    # [('A', 'B', 'C'), ('A', 'C', 'B'), ('B', 'A', 'C'), ('B', 'C', 'A'), ('C', 'A', 'B'), ('C', 'B', 'A')]

     

    조합

    from itertools import combinations
    
    data = ['A', 'B', 'C']
    
    result = list(combinations(data, 2)) # 2개를 뽀는 모든 조합 구하기
    print(result)
    # [('A', 'B'), ('A', 'C'), ('B', 'C')]

     

    중복순열

    # 2개를 뽑는 모든 순열 구하기(중복허용)
    
    from itertools import product
    
    data = ['A', 'B', 'C']
    
    result = list(product(data, repeat = 2))   
    
    print(result)
    
    
    # 2개를 뽑는 모든 조합 구하기(중복허용)
    
    from itertools import combinations_with_replacement
    
    data = ['A', 'B', 'C']
    
    result = list(combinations_with_replacement(data, 2)) 
    print(result)

     

     

    Counter

    from collections import Counter
    
    counter = Counter(['red', 'blue', 'red', 'green', 'blue', 'blue'])
    
    print(count['blue'])
    print(count['green'])
    print(dict(counter))
    
    # 3
    # 1
    # {'red':2 ,'blue':3 , 'green':1 }

     

    최대공약수 최소공배수

    import math
    
    # 최소 공배수(LCM)를 구하는 함수
    del lcm(a, b):
    	return a * b // math.gcd(a, b)
        
    a = 21
    b = 14
    
    print(math.gcd(21, 14))  # 최대 공약수(GCD) 계산
    print(lcm(21, 14))  # 최소 공배수(LCM) 계산

     

    '코딩 > Python' 카테고리의 다른 글

    파이썬 실행파일 만들기  (0) 2021.09.27
    파이썬 일정 시간 동안 실행 방법  (0) 2021.09.27
    파이썬 Selenium  (0) 2021.09.27

    댓글

    Designed by JB FACTORY