coldrain-f
웹 꼬딩 기록🌈
coldrain-f
전체 방문자
오늘
어제
  • 분류 전체보기 (8)
    • 📓 사이드 프로젝트 (0)
      • 📖 웨일 보카 (0)
    • ✏️ TIL (Today I Learned) (1)
    • 🌠 개발 공부 (3)
      • 📖 Vue (1)
      • 📖 React Native (1)
      • 📖 Python (1)
      • 🌃 코드 스니펫 (0)
    • 📓 CS 지식 (3)
      • 📖 데이터베이스 (3)
    • 🤖 알고리즘 (0)
      • 📖 백준 (0)
      • 📖 프로그래머스 (0)
      • 📖 개념 (0)
    • 📓 자격증 (1)
      • 📖 정보처리기사 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
coldrain-f

웹 꼬딩 기록🌈

🌠 개발 공부/📖 Python

Python 문법 정리

2023. 7. 27. 09:39

몫과 거듭제곱

print(10 // 2) # 몫: 5
print(2 ** 3) # 거듭제곱: 8

가감승제 연산자(+, -, *, /)와 나머지 연산자(%)는 Java와 같다.

 

List 자료형

기본 문법

# 선언 및 초기화
arr = [1, 2, 3, 4]

# 인덱스 접근
print( arr[0] ) # 1 출력
print ( arr[-1] ) #  4출력

# 값 재할당
arr[0] = 10
print( arr[0] ) # 10 출력
arr[0] = 1

# 슬라이싱 list[n:m] n부터 m앞까지
print( arr[0:2] ) # [1, 2] 
print( arr[0:-1] ) # [1, 2, 3]
print( arr[1:-1] ) # [2, 3]

# 리스트 초기화
arr.clear()

# 리스트 컴프리헨션
arr = [0] * 3
two_d_list = [[0] * 3 for _ in range(3)]
even_list = [i for i in range(1, 10) if i % 2 == 0]

print(arr) # [0, 0, 0]
print(two_d_list) # [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
print(two_d_list[0][0]) # 0
print(even_list) # [2, 4, 6, 8]

List는 순서가 있는 선형 자료구조이고, Array처럼 인덱스를 사용해서 O(1)로 접근할 수 있다. 음수 인덱스, 슬라이싱, List Comprehension은 생소한 개념이긴 하지만 익혀두면 굉장히 유용할 듯하다.

 

리스트 CRUD 함수

arr = [1, 2, 3]

# 맨 뒤에 추가
arr.append(4)
print(list) # [1, 2, 3, 4]

# 0번 index에 0삽입
arr.insert(0, 0) 
print(arr) # [0, 1, 2, 3, 4]

# 2번 index에 2삽입
arr.insert(2, 2)
print(arr) # [0, 1, 2, 2, 3, 4]

# 값으로 제거
arr.remove(2) # 중복 값은 맨 앞에 값을 찾아서 지운다.
print(arr) # [0, 1, 2, 3, 4]

# 인덱스로 제거
arr.pop(-1)
print(arr) # [0, 1, 2, 3]

# 맨 뒤에 값 꺼내기
arr.pop()
print(arr) # [0, 1, 2]

List 정렬 함수

arr = [15, 32, 17, 12, 19, 47, 35]

# 오름차순 정렬 - 원본 변형
arr.sort()
print(arr) # [12, 15, 17, 19, 32, 35, 47]

# 내림차순 정렬 - 원본 변형
arr.sort(reverse = True)
print(arr) # [47, 35, 32, 19, 17, 15, 12]

# 오름차순 정렬 - 원본 변형X, List 반환
sorted_list = sorted(arr)
print(sorted_list) # [12, 15, 17, 19, 32, 35, 47]

# 내림차순 정렬 - 원본 변형X, Iterator 반환
reversed_list = reversed(arr)
print(reversed_list) # <list_reverseiterator object at 0xa405f8>
print(list(reversed_list)) # [12, 15, 17, 19, 32, 35, 47]

Dictionary 자료형

dict = {}
dict['apple'] = '사과'
dict['banana'] = '바나나'

print(dict['apple']) # 사과
print(dict['banana']) # 바나나

print(dict.keys()) # dict_keys(['apple', 'banana'])
print(dict.values()) # dict_values(['사과', '바나나'])

# for문으로 모든 key 순회
for key in dict.keys():
    print(key)

# for문으로 모든 value 순회
for value in dict.values():
    print(value)

key, value 쌍으로 이루어진 자료구조이다. Java의 Map과 유사하지만 값을 key를 이용하여 배열처럼 접근할 수 있어서 좀 더 사용하기 편한 것 같다.

 

Set 자료형

a = set([1, 2, 3, 4])
b = set([4, 5, 6, 7])

print(a) # {1, 2, 3, 4}
print(b) # {4, 5, 6, 7}

# 교집합 
print(a & b) # {4}

# 합집합
print(a | b) # {1, 2, 3, 4, 5, 6, 7}

# 차집합
print(a - b) # {1, 2, 3}
print(b - a) # {5, 6, 7}

# 원소 추가
a.add(5) 
print(a) # {1, 2, 3, 4, 5}

# 원소 여러 개 추가
b.update([1, 2, 3]) 
print(b) # {1, 2, 3, 4, 5, 6, 7}

# 원소 삭제
a.remove(5)
print(a) # {1, 2, 3, 4}

# set을 이용하여 list 중복 제거
arr = [3, 3, 7, 7, 2, 2, 1, 1]
unique_numbers = list(set(arr))
print(unique_numbers) # [1, 2, 3, 7]

arr = [1, 1, 2, 2, 7, 7, 3, 3]
unique_numbers = list(set(arr))
print(unique_numbers) # [1, 2, 3, 7]

List는 순서가 중요하지만 Set은 순서가 중요하지 않다. 사실상 Set은 순서가 없다고 봐야 한다. [1, 2]와 [2, 1]은 서로 다른 리스로 간주하지만 Set은 순서가 중요하지 않기 때문에 집합 {1, 2}와 {2, 1}은 같은 Set이다.

 

그리고 List는 중복된 값이 저장 될 수 있지만 Set은 중복을 허용하지 않는다. 2를 3개 넣는다고 가정하면, List는 [1, 2, 2, 2]가 가능하지만 Set은 무조건 {1, 2}가 된다.

 

List를 Set으로 변환하여 중복을 제거한 후 다시 List로 변환하면 항상 그런지는 모르겠지만 오름차순으로 반환되는 것 같다. 만약 항상 그렇다고 한다면 List의 중복을 제거하고 오름차순으로 만들고 싶을 때 set()을 이용하면 유용할 듯하다. 그리고 그냥 중복만 제거할 때에도 유용할 것 같다.

 

in과 not in

# in과 not in
if 1 in [1, 2, 3]:
    print("List [1, 2, 3]에 1이 들어있음")

if 1 not in [2, 3]:
    print("List [2, 3]에 1이 들어있지 않음")

리스트에 특정 값이 들어있는지, 없는지 체크할 수 있다.

 

입력

# input()의 반환값은 문자열

# 정수 값 1개 입력
n = int(input())

# 실수 값 1개 입력
n = float(input())

# 문자열 입력
message = input()

# 정수 값 공백을 구분 문자로 한 줄로 여러 개 입력 (Ex: 1 2 3 4)
numbers = list(map(int, input().split()))

 

내장 함수

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

print(sum(numbers)) # 55
print(max(numbers)) # 10
print(min(numbers)) # 1
print(max(30, 20, 10, 40)) # 40
print(min(30, 20, 10, 40)) # 10
    coldrain-f
    coldrain-f

    티스토리툴바