Today's Learning

[23.07.26] :: 학습 노트 - Python[join(), eval(), set(), dict()]

Semincolon 2023. 7. 30. 01:59

◎ Programmers

1) join()

  join() 함수는 리스트의 각 문자 요소를 하나의 문자열로 합쳐주는 함수이다. 기본 형태는 다음과 같다.

"구분자".join(리스트)

  아무런 구분자를 설정하지 않을 경우 각 문자 사이에는 별다른 구분자가 존재하지 않고 구분자를 설정하면 해당 구분자로 각 문자가 구분되게 된다. 아래 예제를 통해 확인해보자.

temp = ['a', 'b', 'c', 'd', 'e']

print("".join(temp))
print("---".join(temp))

  join() 함수는 코테에서 활용성이 높은 편이니 잘 알아두고 사용하면 좋을 것 같다.

 

2) eval()

  eval() 함수는 괄호 안의 내용을 곧이 곧대로 실행해주는 함수이다. 이 함수는 사용하면 편리함이 상승되나 한편으로는 큰 위험을 초래할 수도 있는 양날의 검같은 함수이다. 아래 예제를 통해 사용 모습을 살펴보자.

print(eval("1+2"))
print(eval("'Hello' + 'Python' + '!!!'"))
print(eval("sum([1, 2, 3, 4, 5])"))

a = 100
b = 200
print(eval("a+b, a*b, a-b, a/b"))

  이처럼 eval 함수는 괄호 안의 내용을 곧이 곧대로 실행해주는 함수이다. 이 말은 즉슨 어떠한 내용이든 모두 실행될 수 있으니 주의할 필요가 있다는 것이다. 만약 os 명령어를 입력받고 실행하게 된다면 예상치 못한 문제가 발생할 수 있으므로 이 함수는 코딩 테스트에서 숏코딩을 위해 사용하는 정도로만 기억하고 있는게 좋을 것 같다.

 

3) set()

  set() 함수는 집합을 만들어주는 함수이다. set 함수를 통해서 집합을 만들 수도 있고 중괄호를 통해서 만들 수도 있다.

set1 = set([1, 2, 3])
set2 = set({1, 2, 3})
set3 = {1, 2, 3}

print(type(set1), type(set2), type(set3))

이 함수를 사용하면 리스트에서 중복된 값을 하나씩만 남기는 것이 가능하고 여러 집합을 만들어 합집합, 교집합, 차집합을 구할 수도 있다. 유용하게 사용되니 잘 알아두면 좋을 것 같다.

list1 = [1, 1, 1, 2, 2, 3, 4, 5]
list2 = [4, 4, 5, 6, 6]

s1 = set(list1)
s2 = set(list2)

print(type(s1), type(s2))
print(s1, s2)
print(s1.intersection(s2))
print(s1.difference(s2))

 

4) dict()

  dict() 함수는 딕셔너리를 만드는 함수이다. 딕셔너리는 보통 중괄호를 사용하여 만들지만 이 함수를 사용해서도 가능하다. 여러 형태로 딕셔너리를 만드는 예를 아래에 보였다.

# 빈 딕셔너리
d1 = dict()

# 등호 형태
d2 = dict(a=1, b=2, c=3)

# 튜플의 리스트 형태
d3 = dict([('a', 10), ('b', 20), ('c', 30)])

# zip 함수와 결합
d4 = dict(zip(['a', 'b', 'c'], [100, 200, 300]))

print(d1, d2, d3, d4, sep='\n')