백준 문제를 풀다 1차원 리스트 요소들을 리스트 없이 아래와 같이 한번에 출력하고 싶을 때가 있다.
arr = [1, 2, 3, 4]
1 2 3 4
보통 for문을 사용해서 많이 출력하지만 더 간단하게 출력하는 방법이 있다
print(*arr)
예시를 들어보자.
arr = [1, 2, 3, 4]
print(arr)
[1,2,3,4]
보통 print(arr)를 하면 위와 같이 대괄호까지 한번에 나온다.
그러나 *를 붙여주면 리스트 요소를 대괄호 없이도 한 번에 출력할 수 있다. 그 이유는 Asterisk(*)를 사용하면 리스트 압축 해체를 할 수 있기 때문이다.
다음으론 리스트에서 찾고자 하는 인덱스 위치를 출력해주는 함수 index가 있다.
list.index(i)
list : 리스트 이름
i : 찾고자 하는 값
예시를 들어보자.
arr = [10, 20, 30, 40]
print(arr.index(20))
1
arr 리스트에 있는 20의 인덱스를 출력하라는 코드였고 1을 출력했다.
그렇다면 찾고자 하는 값이 리스트 안에 2개 이상 존재한다면 리스트를 어떻게 출력할까?
arr = [10, 20, 30, 40, 20]
print(arr.index(20))
1
위치를 다 출력해주는 것이 아닌 제일 첫번째 값을 출력해준다. 즉, 최소 인덱스를 출력해준다.
그렇다면 찾고자 하는 값이 없다면 어떻게 출력할까
arr = [10, 20, 30, 40]
print(arr.index(50))
ValueError: 50 is not in list
Error를 출력한다.
문자열에서도 마찬가지로 작동한다.
S = "Programming"
print(S.index('r'))
1
S라는 문자열에서 r의 위치를 출력하고 싶었고 1이 나왔다.
이 때, 특정 범위 인덱스에서 특정 문자를 찾을 수도 있다.
S = "Programming"
print(S.index('a',3,8))
5
특정 범위에 없다면 마찬가지로 ValueError를 출력한다.
S = "Programming"
print(S.index('p',3,8))
ValueError: substring not found