본문 바로가기

Til

Til 24.03.05 알고리즘 - 파이썬 (len, 리스트에서 특정부분 추출 슬라이싱 slicing)

 

 

>>편지지 길이 구하기

 

글자를 2배 크기로쓸예정인데 편지지 길이를 구하라

 

방법1)

 
def solution(message):
    answer = len(message) * 2
    return answer

 

방법2)

 
def solution(message):
    return len(message) * 2
 

 

둘다 결과값이 같음

 

len() 함수 : 개수를 세어주는 함수 

-문자역에 있는 글자의 수

-리스트 안의 요소의 개수를 세어줌

 

 
>>리스트에서 n1번째서 n2번째까지 구하기
 
def solution(numbers, num1, num2):
    return numbers[num1:num2+1]
 

 

넘1에서 넘2 까지 구해야하므로 +1을 해줘야함

 

슬라이싱은 끝값의 바로 앞까지만 구해줌으로 +1 

 

여기서 슬라이싱이란?? 

 

slicing : 시퀀스 데이터(e.g 리스트 튜플 문자열등)에서 부분을 추출하는 기법

슬라이싱은 데이터 일부를 선택하여 새로운 시퀀스를 생성

 

 # 시퀀스의 형식
 시퀀스 [  시작start    인덱스:끝stop    인덱스:간격step ]
 

 

위에서 start 는 포함이 되지만

stop은 포함되지 않는다!!

step은 생략가능 ->기본값은 1

 

numbers[ 1, 2, 3, 4, 5 ] 

- numbers [1:4]   는 [ 2,3,4]   1+1번째부터 4-1번째 까지 ( 순서는 0번째부터 있음)

- numbers [ : 3]  은 [123]   0+1번째부터 3-1번째 까지

- numbers [ 2: ] 는 [ 3 4 5 ]  2+1번째부터 끝까지

- numbers [ : : 2] 는 [ 1 3 5 ]  첫번째부터 2번째간격으로 추출

 

 

위에서 시퀀스란??

데이터가 순서대로 있는 배열 /리스트 list , 튜플 tuple , range,  문자열 string /

 

 

튜플과 리스트의 차이?

 

튜플은 리스트와 다르게 요소들을 추가, 삭제 변경 불가!!

 소괄호 ()로 둘러싸고 있음 e.g (1,2,3)