프로그래밍/Python 49

순열, 조합, 중복 순열, 중복 조합

순열(=permutations) 1️⃣ 반복 가능한 객체(=길이가 n인)에 대해서 중복을 허용하지 않고 r개를 뽑아서 나열 2️⃣ 뽑힌 순서대로 나열하기 때문에 순서가 의미 있음(즉, 같은 값이 뽑히더라도 순서가 다르면 다른 경우의 수로 취급) 3️⃣ permutations(반복 가능한 객체, r) from itertools import permutations n = [1, 2, 3, 4] a = list(permutations(n, 2)) print(a) # [(1, 2), (1, 3), (1, 4), (2, 1), (2, 3), (2, 4), (3, 1), (3, 2), (3, 4), (4, 1), (4, 2), (4, 3)] for i in list(a): if i[0] != i[1]: print(..

자료형 - 집합

집합 자료형 집합은 기본적으로 리스트 혹은 문자열을 이용해서 만들 수 있는데, 집합은 다음과 같은 특징이 있음 1️⃣ 중복을 허용하지 X 2️⃣ 순서가 X 집합 자료형 초기화 방법 # 초기화 방법 1 data = set([1, 1, 2, 3, 4, 4, 5]) print(data) # {1, 2, 3, 4, 5} # 초기화 방법 2 data = {1, 1, 2, 3, 4, 4, 5} print(data) # {1, 2, 3, 4, 5} 집합 자료형의 연산 합집합, 교집합, 차집합 연산이 있음 a = set([1, 2, 3, 4, 5]) b = {3, 4, 5, 6, 7} # 합집합 print(a | b) # {1, 2, 3, 4, 5, 6, 7} # 교집합 print(a & b) # {3, 4, 5} #..

자료형 - 딕셔너리

딕셔너리(사전 자료형) 키(Key)와 값(Value)의 쌍을 데이터로 가지는 자료형 data = dict() data['사과'] = 'Apple' data['바나나'] = 'Banana' data['코코넛'] = 'Coconut' # data = {'사과': 'Apple', '바나나': 'Banana', '코코넛': 'Coconut'} print(data) # {'사과': 'Apple', '바나나': 'Banana', '코코넛': 'Coconut'} 딕셔너리 관련 함수 data = dict() data['사과'] = 'Apple' data['바나나'] = 'Banana' data['코코넛'] = 'Coconut' # 키 데이터만 담은 리스트 key_list = data.keys() print(key_li..

자료형 - 리스트

리스트 생성 # 빈 리스트 선언 방법 1 a = list() # 빈 리스트 선언 방법 2 a = [] # 리스트 생성 a = [1, 2, 3, 4, 5, 6, 7] 리스트 초기화 # 크기가 N이고, 모든 값이 0인 1차원 리스트 초기화 n = 10 a = [0] * n 리스트의 인덱싱과 슬라이싱 a = [1, 2, 3, 4, 5] # 뒤에서 첫 번째 원소 출력 print(a[-1]) # 5 # 뒤에서 세 번째 원소 출력 print(a[-3]) # 3 # 두 번째 원소부터 네 번째 원소까지 print(a[1:4]) # [2, 3, 4] # 네 번째 원소 값 변경 a[3] = 5 print(a) # [1, 2, 5, 4, 5] 리스트 컴프리헨션 리스트를 초기화하는 방법 중 하나 대괄호([]) 안에 조건문과 ..

자료형 - 문자형

문자열 연산하기 문자열 더해서 연결하기(Concatenation) head = "Python" tail = "is fun" print(head + tail) # Python is fun 문자열 곱하기 a = "python" print(a * 2) # pythonpython print("=" * 10) print("Python") print("=" * 10) # ========== # Python # ========== 문자열 슬라이싱 a = "Life is too short, You need Python" print(a[0:4]) # Life print(a[:]) # Life is too short, You need Python print(a[19:-7]) # You need 문자열 관련 함수 count..

자료형 - 숫자형

숫자형 정수형 a = 123 b = -178 c = 0 실수형 a = 1.2 b = -3.45 8진수와 16진수 파이썬에서 잘 사용하지 앟는 형태의 숫자 자료형임 # 8진수(Octal)를 만들기 위해서는 숫자가 0o 또는 0O로 시작하면 됨 a = 0o177 # 16진수(Hexadecimal)를 만들기 위해서는 0x로 시작하면 됨 b = 0x8ff c = 0xABC 복소수 일반적으로 복소수를 표현할 때 i를 사용하여 표현하지만 파이썬은 i대신 j를 사용함 a = 1 + 2j b = 3 - 4j 복소수 활용 예제 복소수.real a = 1 + 2j print(a.real) # 1.0 복소수.imag a = 1 + 2j print(a.imag) # 2.0 복소수.conjugate() a = 1 + 2j pr..

Web Scraping3(CSV 파일에 저장하기)

CSV(Comma Separated Values) 데이터들은 보통 쉼표(,) 로 구분되어 저장되어 있음 하지만 세미콜론(;), 공백( ), 탭('\t') 으로 구분해서 저장할 수도 있음 csv 파일 생성하기 save.py import csv def save_to_file(news): return main.py from naver import get_news as get_naver_news from hankyung import get_news as get_hankyung_news from save import save_to_file naver_news = get_naver_news() hankyung_news = get_hankyung_news() news = naver_news + hankyung_new..

Web Scraping1

Web Scraping 웹 상의 데이터를 추출하는 것 네이버 뉴스 기사의 페이지 넘버 가져오기 main.py from naver import extract_naver_pages, extract_naver_news last_naver_pages = extract_naver_pages() naver_news = extract_naver_news(last_naver_pages) naver.py import requests from bs4 import BeautifulSoup URL = "https://search.naver.com/search.naver?&where=news&query=%EC%82%BC%EC%84%B1%EC%A0%84%EC%9E%90&sm=tab_pge&sort=1&photo=0&field=0..