예시)
bts = ["RM", "제이홉", "진", "정국", "지민", "뷔", "슈가"]
bts 의 2번째 요소 부터 4번째 요소만 따로 copy해서 sub_bts 라는 list를 만들때,
sub_bts = bts[1:4]
## ==> ['제이홉', '진', '정국']
list_name[start : stop]
list slicing 에는 start와 stop이외에도
step 이 있다.
list_name[start : stop : step]
Step은 그 값만큼 건너뛰어 가져오는 기능이다.
step은 optional 이기 때문에 선언해주지 않아도 된다.
만일 선언이 안되면 default 로 1로 지정된다.
그럼으로 위의 경우 step을 선언하지 않았기 때문에 default로 요소를 하나씩 가져온다.
bts[1:4] == bts[1:4:1]
다음 처럼 step을 2로 지정해보자.
sub_bts = bts[1:4:2]
위에 처럼 step을 2로 선언하면 sub_bts 의 값은
['제이홉', '정국'] 이 된다.
start index를 빈칸으로 남겨두면 해당 list의 첫 요소 부터 시작한다.
bts = ["RM", "제이홉", "진", "정국", "지민", "뷔", "슈가"] sub_bts = bts[:4] ##==> ['RM', '제이홉', '진', '정국']
stop index를 빈칸으로 남겨두면 start index 부터 끝까지 가져온다.
bts = ["RM", "제이홉", "진", "정국", "지민", "뷔", "슈가"] sub_bts = bts[2:] ##==> ['진', '정국', '지민', '뷔', '슈가']
Slicing 을 하면 새로운 list를 만들어 낸다.
오해가 있을 수 있는 부분이니 꼭 기억하자!
bts = ["RM", "제이홉", "진", "정국", "지민", "뷔", "슈가"] sub_bts = bts[1:4] print(f"bts = {bts}") bts = ['RM', '제이홉', '진', '정국', '지민', '뷔', '슈가'] print(f"sub_bts = {sub_bts}") sub_bts = ['제이홉', '진', '정국']
Input으로 주어진 리스트를 slicing 하여 다음 3종류의 sub list를 출력하세요.
리스트의 처음부터 중간까지.
리스트의 중간부터 끝까지.
리스트의 2번째 요소부터 5번째 요소까지 (5번째 요소 포함해서).
예를 들어, 다음과 같은 리스트가 input으로 들어왔다면:
my_list = [1, 2, 3, 4, 5, 6, 7, 8]
다음과 같이 출력되어야 합니다.
[1, 2, 3, 4]\
[5, 6, 7, 8]\
[2, 3, 4, 5]
My solution
import statistics my_list = [s for s in input().split()] n = len(my_list) sub_list1 = my_list[0:n//2] sub_list2 = my_list[n//2:n] sub_list3 = my_list[1:5] print(sub_list1) print(sub_list2) print(sub_list3)
Model solution
my_list = [s for s in input().split()] print(my_list[:len(my_list)//2]) print(my_list[len(my_list)//2:]) print(my_list[1:5])