파이썬 알아두면 좋은 표현
Programming Language/Python

파이썬 알아두면 좋은 표현

728x90

1. 다음과 같이 여러 수를 여러 줄에 입력 받을 때, list에 넣는 경우

맨 첫 줄에 몇 개의 수를 입력 받을 것인지 입력됨.

# 입력
5
10
100
1000
10000
100000

import sys
n = int(input())
num = [int(sys.stdin.readline()) for _ in range(n)]

 

2. 다음과 같이 여러 수를 한 줄에 입력 받을 때, 각 변수에 넣는 경우

n1, n2 = map(int, input().split())

 

3. 문자열의 순서를 뒤집어 저장

n = input()

reversed_n = "".join(reversed(n))

 

4. 리스트의 가장 마지막 원소

list[-1]

 

5. 리스트의 원소들을 하나씩 한 줄에 출력

print('\n'.join(list))
728x90

6. 리스트의 최빈값 구하기

Dictionary 자료형으로 반환한다.

from collections import Counter

num_list = [3, 3, 1, 1, 5, 5, 5, 5, 5]

cnt_list = Counter(num_list)

print(cnt_list)

--출력--
Counter({5: 5, 3: 2, 1: 2})

most_common 함수를 사용하여, 가장 큰 것들로 몇 개만 출력할 것인지 정해줄 수 있음.

Tuple 자료형으로 반환한다.

from collections import Counter

num_list = [3, 3, 1, 1, 5, 5, 5, 5, 5]

cnt_list = Counter(num_list).most_common()
cnt_list_2 = Counter(num_list).most_common(2)
cnt_list_1 = Counter(num_list).most_common(1)

print(cnt_list)
print(cnt_list_2)
print(cnt_list_1)

--출력--
[(5, 5), (3, 2), (1, 2)]
[(5, 5), (3, 2)]
[(5, 5)]

 

7. 리스트 append와 extend의 차이점

# append
arr1 = [1, 2, 3, 4]
arr2 = [5, 6]

arr1.append(arr2)
print(arr)

--출력--
[1, 2, 3, 4, [5, 6]]

append의 경우, 리스트 자체를 하나의 element로 추가한다.

# extend
arr1 = [1, 2, 3, 4]
arr2 = [5, 6]

arr1.extend(arr2)
print(arr1)

--출력--
[1, 2, 3, 4, 5, 6]

extend의 경우, 각 element 하나하나를 독립적으로 추가한다.

 

8. 최대공약수, 최소공배수

import math

n, m = map(int, input().split())

print(math.gcd(n, m))
# Python 3.9 부터 사용 가능
print(math.lcm(n, m))

 

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

a = [1, 2, 3, 4, 5, 5, 5]
remove_set = {3, 5}

result = [i for i in a if i not in remove_set]
print(result)

--출력--
[1, 2, 4]

 

10. 빠르게 입력 받기

사용자로부터 입력을 최대한 빠르게 받아야 하는 경우가 있다.

sys 라이브러리에 정의되어 있는 sys.stdin.readlin()메서드를 이용한다.

단, 입력 후 엔터(Enter)가 줄 바꿈 기호로 입력되므로 rstrip()메서드를 함께 사용한다.

이진탐색, 정렬, 그래프 관련 코딩 테스트 문제에서 자주 사용된다.

import sys

# 문자열 입력 받기
data = sys.stdin.readline().rstrip()
print(data)
728x90