파이썬 기초 문법
문자열 길이 구하기
- 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 |