본문 바로가기
반응형

🍃 Language/Python20

[Python] 파이썬 enumerate 활용법 | for문을 파이썬스럽게 enumerate 대부분 for루프를 돌면서 인덱스 변수를 증가시킨다. 하지만 파이썬에선 enumnerate()라는 내장함수를 이용해서 이런 인덱스 변수 없이 반복문을 돌릴 수 있다. 파이썬스러운 함수중에 하나이다. 인덱스와 원소를 동시에 접근하면서 루프를 동시에 돌릴 수 있기때문에 사용법-일반for문 for in : 목록은 리스트,튜플,문자열,반복자 등 순서가 있는 모든 데이터타입에 해당한다. 원소는 흔히 루프변수라고 불리는 것. 그래서 목록부분에 넘긴 객체가 담고 있는 원소들이 루프가 도는동안 하나씩 차례로 할당이 된다. 예를 들어 3개의 글자를 담은 리스트를 대상으로 루프를 돌면 각각 글자를 출력한다 또는 리스트의 인덱스와 같이 출력하고 싶다면 이렇게 range(len(리스트))를 가지고 출력한다... 2021. 5. 26.
[Python] 문자열찾기 | find/startswith/endswith startswith startswith는 문자열이 특정문자로 시작하는지 여부를 알려준다 사용법 문자열(s). startswith('시작하는문자') : 문자열s가 시작하는 문자로 시작하니? True/False 문자열(s). startswith('시작하는문자', 위치) : 해당위치의 문자열s가 시작하는 문자로 시작하니? True/False 예시 참고로, 대소문자도 구별이 된다 find(찾을문자, 찾을위치) find는 문자열 중에 특정 문자를 찾고 위치를 반환해준다. 없을 경우 -1리턴 사용법 문자열(s). find(찾을문자) : 문자열s에서 찾을문자가 있는 위치를 반환 예시 문자열의 인덱스도 0부터 시작해서 첫단어인 H를 찾고자 할때, 찾을 위치는 0을 반환한다. k는 존재하지 안항서 -1를 반환한다 end.. 2021. 5. 25.
[Python] zip으로 index랑 values를 합쳐서 dict만든다 zip 마치 옷의 지퍼(zipper)처럼 두 그룹의 데이터를 서로 엮어주는 파이썬의 내장 함수 사용법 for 변수 in zip(객체1, 객체2) 여러 개의 순회 가능한(iterable) 객체들을 인자로 받고, 각 객체가 담고 있는 원소를 튜플의 형태로 차례로 접근할 수 있는 반복자(iterator)를 반환한다 예시 만약, zip을 사용하지 않았다면 이런식으로 각각 인덱스 변수를 사용해야 했겟지. 응용 zip을 사용하면 여러개의 리스트들을 dict로 쉽게 만들 수 있따 주의사항 단, zip()함수로 넘기는 인자의 길이가 다를때는 가장 짧은 인자를 기준으로 데이터가 엮이고 나머지는 버려진다. 출처 https://www.daleseo.com/python-zip/ 2021. 5. 25.
[Python] 람다식, lambda로 sorted key 정하기 Lambda 함수 이름없는 함수, 람다표현식을 익명함수(anonymous function) 함수를 따로 선언하지 않고, lamba식으로 대체함 예를 들어 매개변수 x에 10을더한 값을 반환하는 함수를 만든다고 하면 사용법 이렇게 할텐데 이렇게 간단한 식일때는 lambda함수로 코드를 한줄로 줄일 수 있따. 이렇게 간단하게 표현하면 뭐가 좋은가? 코드가 간단해질 뿐만 아니라 메모리를 덜 잡아먹는다. 원래 함수를 선언하면 그 함수자체를 메모리에 할당하는데 lambda함수를 쓰면 한번만 사용하고 사라지기 때문에 메모리를 효율적으로 쓸 수 있다. 응용 람다를 언제 사용하면 될까? 내가 자주 본 것은 sorted()함수를 사용할 때이다. 정렬하는 기준을 잡을때 lambda를 가지고 변형한 값 만든 후, 이 값을 .. 2021. 5. 25.
[Python] 코딩테스트에 자주쓰이는 함수 (정렬, 문자열, 숫자, 리스트 ) 내장함수 sum/min/max sorted(객체, key= ,reverse=True) : 내림차순으로 정렬 reversed(객체) : reversed객체 result = sorted([("홍길동", 35), ("이순신", 75), ("아무개", 50), key = lambda x: x[1], reverse=True) # [('이순신', 75), ('아무개', 50), ('홍길동', 35)] 문자열(str) str.isalnum() : 알파벳 또는 숫자로 이루어져있는지, 특수문자들어가면 False (ex: a2A -True, 1&A- False) str.isalpha() : 모두 알파벳으로만 되어 있는지, 알파벳 아닌게 하나라도 있으면 False str.isdigit() : 모두 숫자로만 되어 있는지 , .. 2021. 5. 18.
[Python] 큐(Queue), 스택(Stack) 큐 먼저 넣은 데이터를 가장 먼저 꺼내는 데이터 구조 FIFO(First-in, First-out: 선입선출) 또는 LILO(Last-in, Last-Out)방식 어떤걸 할 수 있는가? Enqueue : 큐에 데이터 넣기, python list의 append()와 같음 Dequeue : 큐에서 데이터 꺼내기, python list의 pop()과 같음 사용하기 스택 먼저 넣은 데이터를 가장 나중에 꺼내는 데이터 구조. LIFO(Last-in, First-Out)방식 어떤걸 할 수 있는가? push() : 스택에 데이터 넣기, python list의 append()와 같음 pop() : 스택에서 데이터 꺼내기, python list의 pop()과 같음 장점은 ? 구조가 단순하고, 구현이 쉽다. 데이터를 저장.. 2021. 5. 15.
[Python] 해쉬(Hash Table) 간단용어 해쉬 : 임의 값을 고정길이로 변환하는 것 해쉬함수 : 특정연산을 이용하여 키 값을 받아서 value를 가진 공간의 주소로 바꾸어주는 함수 해쉬테이블 : 해쉬구조를 사용하는 데이터구조 해쉬값 : key값을 해쉬함수에 넣어서 얻은 주소값. 슬롯 : 한개의 데이터를 저장할 수 있는 공간(아래에선 buckets) 해쉬구조 Key와 Value 쌍으로 이루어진 데이터구조 Key를 이용해서 데이터를 찾아서 속도를 빠르게 만드는 구조 파이썬에서는? '딕셔너리 타입'이 해쉬테이블과 같은 구조 언제 사용하는가? 검색이 많이 필요한경우, 저장/삭제/읽기가 많은 경우, 캐쉬를 구현할 경우 장점은? 데이터저장/검색 속도가 빠르다 키에 대한 데이터 중복확인이 쉽다. 단점은? 저장공간이 좀더 많이 필요하다 여러 키에 대.. 2021. 5. 15.
[Python] Intellij에서 Flask시작하기 | Flask Template Config추가 추가로 웹단 구현이 필요해서 flask를 사용하기로 했다. 그런데 지금은 웹이 아닌 back단을 실행하기 위해서 python run을 하고 있었다. 그럼 어떻게 같은 프로젝트 파일에서 Flask도 실행할 수 있을까? RUN/Debug Configuration을 추가한다. 이때, 인텔리제이에서는 '템플릿'을 제공한다. 아래의 여러가지 프레임워크를 기반으로 코드를 실행할 수 있는 것이다. 그중에서 flask를 선택하고, 새로운 config를 만들었다. 이때 app.py는 Flask앱을 시작해주는 코드라고 보면 된다. 일단 hello world부터 시작해보자. 이렇게 하나의 짧은 코드만으로도 웹프로그램이 하나가 완성된다. 코드를 설명하면, 처음에 Flask라는 클래스를 가져온다. 그리고, Flask 클래스의 .. 2021. 5. 11.
[Python] 셀레니움(Selenium) NoSuchElementException 에러 셀레니움으로 크롤링하는데 접근하려는 요소가 존재하지 않을때 발생 대상 페이지가 서버와 통신이 계속적으로 진행되는 동적페이지거나, 크롤링을 원하는 요소가 html내에 존재하지도 않는데 접근하려고 할때 workingwithpython.com/selenium-waits/ 셀레니움(Selenium)에서 대기(Waits)하기 - 크롤링을 위한 파이썬(Python) 파이썬으로 셀레니움 크롤링을 할 때 NoSuchElementException에러가 발생할 수 있습니다. 이러한 경우 셀레니움에서 접근하고자 하는 요소가 생성될 때까지 대기(Waits)하여 에러를 방지할 수 있습니다. workingwithpython.com 현재 리다이렉션 페이지에서 허가버튼을 누르려고 xpath를 가져오는데 오류발생 # authentic.. 2021. 4. 15.
[Python] Intellj에서 Python프로젝트 환경구축하기 | Python 설치 1. File-Project Structure-플러스 눌러서 Python SDK 추가하기 2. python interpreter 추가하기 새로운 가상환경을 추가하려고 파이썬 경로 추가하기 단, 사전에 python이 설치되어 있어야함 --> 파이썬 설치 바로가기 system interpreter vs virtualenv 환경 차이 3. 프로젝트 sdk python 추가 완료 4. new project 시작하기 python이 정상적으로 sdk로 추가되면, 이렇게 python에서 사용할 수 있는 라이브러리나 프레임워크가 나옴 5. 실행환경 변경하기 이제 파이썬파일을 실행할 수 있도록 구성환경을 바꿔준다. 이렇게 저 시작버튼 왼쪽에 있는거 누르면 RUN/Debug config탭 여기에서 변경할 부분은 Scrip.. 2021. 3. 30.
728x90