본문 바로가기
Computer Language 🗣/Python

파이썬 유용한 함수 및 문법 👾

by 돼지고기맛있다 2021. 9. 1.
반응형

💡 map

◾ 기본 문법

list(map(함수, 리스트))

파라미터로 전달된 함수를 각 리스트의 하나의 원소마다 실행한다. 


💡 dictionary

◾ 기본 문법

{key1: value1 , key2: value2, key3: value3}

d = {"pig": 1}

파라미터로 전달된 함수를 각 리스트의 하나의 원소마다 실행한다. 

 

◾ 쌍 추가하기

a = {1: 'a'}
a[2] = 'b'

# a = {1: 'a', 2: 'b'}

◾ 쌍 삭제하기 

del a[1]

# a = {2: 'b', 'name': 'pey', 3: [1, 2, 3]}

 

◾ value가 가장 큰 값 리스트 

dictionary에서 items()를 가져오면 각 key, value쌍이 리턴된다 이를 k, v변수에 담고 만약 d의 values중 max값이 v와 같다면 key값을 return하는 것이다. 

d = { 'a': 4 , 'b': 4, 'c': 1, 'd': 2}

[k for k,v in d.items() if max(d.values()) == v]

# return ['a', 'b']

💡 set

◾ 기본 선언 및 초기화

s1 = set([1,2,3])
#{1, 2, 3}

s1 = set("hello")
#{'e', 'H', 'l', 'o'}

 

◾ set(집합 자료형)의 특징

순서가 없다(Unordered)
중복을 허용하지 않는다

 

◾ set(집합 자료형)으로 교집합, 차집합, 합집합

s1 = set([1, 2, 3, 4, 5, 6])
s2 = set([4, 5, 6, 7, 8, 9])


# 교집합
s1 & s2
# {4, 5, 6}

# 합집합
s1 | s2
# {1, 2, 3, 4, 5, 6, 7, 8, 9}

# 차집합
s1 - s2
# {1, 2, 3}

s2 - s1
# {8, 9, 7}

💡 String

◾ isalpha() , isdigit(), isalnum()

a = '12345'
b = '12a212a'
c = 'aaa1-23'
d = 'aaa'
f = 'place beautiful'

a.isalpha() # false
a.isdigit() # true
a.isalnum() # true

b.isalpha() #false
b.isdigit() #false
b.isalnum() #true

c.isalpha() #false
c.isdigit() #false
c.isalnum() #false - 기호가 포함되어 있다

d.isalpha() #true
d.isdigit() #false
d.isalnum() #true

b.isalpha() #false
b.isdigit() #false
b.isalnum() #false

 

각 str이 alphabet으로만 이루어져있는지, digit으로만 이루어져있는지 혹은 alpha와 num으로 이루어져있는지 확인해주는 내장 함수들이다. boolean 타입의 리턴값을 가진다. 

 


💡 리스트 

◾ 문자열 리스트 int로 바꾸기

▪ 원하는 결과

l = ['1', '2', '3', '4']

result = [1, 2, 3, 4]

 

▪ 과정

l = list(map(int, l))

or 

l = [int(i) for i in l]

 

◾ 두 개의 리스트 하나로 합치기

▪ 원하는 결과

l1 = [1,2,3,4] 
l2 = [5,6,7]

result = [1,2,3,4,5,6,7]

▪ 과정

l1 = [10, 22, 19]
l2 = [2, 9, 3]

l3 = l1 + l2

or

l1 = [10, 22, 19]
l2 = [2, 9, 3]

l1.extend(l2)

💡 Combinations, Permutations, Product (조합)

import

from itertools import product 
from itertools import permutations 
from itertools import combinations

하나의 리스트에서 모든 조합 구하기

▪ 원하는 결과

l = ['1', '2', '3', '4']

result = 
[('1', '2'), ('1', '3'), ('1', '4'), ('2', '1'), ('2', '3'), ('2', '4'), ('3', '1'), ('3', '2'), ('3', '4'), ('4', '1'), ('4', '2'), ('4', '3')]

or

result =
[('1', '2'), ('1', '3'), ('1', '4'), ('2', '3'), ('2', '4'), ('3', '4')]

or

result = ['12', '13', '14', '23', '24', '34]

▪ 과정

l = ['1', '2', '3', '4']


# (1, 2) 와 (2, 1)을 중복으로 보지 않는다
from itertools import permutations 
list(permutations(l, 2)) 


# (1, 2) 와 (2, 1)을 중복으로 본다
from itertools import combinations 
list(combinations(l, 2))


list(map(''.join, permutations(numbers, i)))

 

 


 

 

 

반응형

댓글