파이썬에서의 문법들을 계속해서 정리해볼까 한다.
map(함수,이터레이터값): 함수 인자 하나와 반복되는 이터레이터 인자를 받아 변환해주는 방식이다.
a,b=(map(int,input().split())) ##1번
a,b=(map(int,input())) ## 2번
print(a,b)
여기서 map에 대한 개념의 혼동이 있었다. map을 사용할시에 map자료형으로 반환되어서 list로 감싸주어야하는 것이 아닌가 생각했는데 여러 값이 있을 때에는 이터레이터에서 차례로 값을 꺼내어 준다고 한다.
a=(map(int,input().split()))
즉 이런식으로 하게 된다면 a에는 이터레이터만 들어가게 되는것이다. 여러 값일 경우에만 이터레이터가 자동으로 값을 넘겨주는 방식이다.
굳이 이 방식을 사용하고 싶다면
a=(map(int,input().split()))
print(next(a))
처럼 이터레이터 함수를 사용해야한다.
join(문자열):문자열을 하나씩 이어주는 함수,문자열 변환 함수
print(' '.join(map(str,a)))
공백을 한칸 넣고 충력가능하게 하는 방식이다 join을 사용하여 가능하다.
이때 join은 문자열을 다루는 함수이기에 map을 사용하여 문자열로 변환해주어야하는 상황을 유의하자.
a="hihi"
print(' '.join(a))
문자열을 넣어줘도 되고 리스트를 넣어줘도 된다(사실 같은 말)
import sys 입력을 효율적을 받기
import sys
input=sys.stdin.readline
이렇게 입력한 후에 input을 사용하면 여러번 반복적으로 입력 받을 때 시간을 줄일 수 있다.
sorted 사용할때 인자값
sorted(정렬할 데이터)
sorted(정렬할 데이터, reverse 파라미터)
sorted(정렬할 데이터, key 파라미터)
sorted(정렬할 데이터, key 파라미터, reverse 파라미터)
li=[[1,4,4],[1,3,3]]
li2=sorted(li,key=lambda x:(x[1],x[0]))
list 에서 값 지우기
>>> a = [1, 2, 3, 4, 5, 6, 7]
>>> del a[1]
>>> a [1, 3, 4, 5, 6, 7]
>>> a = [1, 2, 3, 4, 5, 6, 7]
>>> a.remove(3)
>>> a
[1, 2, 4, 5, 6, 7]
>>> a.remove(9)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: list.remove(x): x not in list
>>> a = [1, 2, 3, 4, 5, 6, 7]
>>> del a[a.index(3)]
>>> a
[1, 2, 4, 5, 6, 7]
'프로그래밍 > 알고리즘' 카테고리의 다른 글
BFS&DFS 정복기 (1) | 2024.06.13 |
---|---|
불변 객체, 가변 객체 (0) | 2024.06.11 |
[백준] Greedy 알고리즘-1339번 (1) | 2024.01.26 |