[Python] # 1. 문자열 슬라이싱 / 리스트 연산

Crush_on_Study·2022년 6월 13일
0

Python 기초

목록 보기
2/2
post-thumbnail

이전 시간에서는 리스트,튜플,딕셔너리 자료형에 대해 배웠고 이들의 특징과 차이를 간단히 짚어보는 식으로 글을 시작했었습니다.

오늘은 리스트를 갖고 추가로 몇가지 기능들을 더 살펴보고자 합니다.


[시작:~까지:증감]

리스트의 슬라이싱은 위 제목만 알면 된다!

먼저, 실습에 사용할 문자를 담았습니다. 이 상태에서 우리는
"Crush"만 출력하고자 합니다.

  • 그럼 data = "Crush"로 하고, print(data)하면 되지 않나요?

귀여운 발상이지만 일일이 data에다 집어넣게되면 퇴사마려워질 겁니다.
제목에서 힌트를 줬듯이 문자열 내에서 시작과 끝을 정해주면 됩니다.

여러분들이 파이썬말고 다른 언어를 먼저 배우고 왔다던가, 아니면 제 네이버블로그를 봐오신 분들이면 프로그래밍 세계에서는 인덱스의 시작이 0인 것을 기억하실 겁니다.

그러면 "Crush on Study"에서 Crush를 출력하려면 먼저 가장 첫 인덱스인 0부터 시작해서 / C : 0 , r : 1 , u : 2 , s : 3 , h : 4 / 5번째 인덱스까지 출력을 해야합니다.

코드를 짜봅시다.

보시면 시작 인덱스를 0부터, 마지막 인덱스는 5이하 까지만 출력하라는 뜻입니다. 가장 뒤에 있는 1은 1칸씩 출력해라! 라는 뜻입니다. (1은 생략해도 됩니다.)

따라서, 이렇게 짜도 동일한 결과를 얻습니다.


리스트를 좀 더 이해하기

앞에서 배웠던 count, len 등등의 함수를 짚어봅시다!
기억이 안난다면? : 복습 빠르게 하러가기

문자열의 길이를 구하는 함수 len를 살펴봅시다. 이전 포스팅에서 len을 언급안했던거 같네요. 상당히 자주 쓰이는 함수입니다.

이런 식으로 쓰는데요. 잘 출력되었나 한번 세봅시다.
Crush 5자에.. 공백 1자.. on에 2자.. 공백 1자.. Study에 5자..
다 합해보면 14자 맞네요!

  • C언어에서 돌려보면 15자로 나오던데요?

C언어와 다르게 출력되는 것을 아셨다면, 여러분들은 정말 공부를 잘해오신 겁니다. C언어에서 문자열의 길이를 구할 때는 마침표 역할을 하는 'Null Point'까지 포함한 길이를 냅니다. 그래서 15자가 나오는 것이고 파이썬에서는 Null Point를 제외한 길이. 즉, 사용자에게 보여지는 문자열의 길이만을 보여주고 있습니다.

len은 문자열의 길이 뿐만 아니라 리스트의 길이도 함께 구할 수 있습니다.

C언어에서는 size_t 라는 식으로 배열의 길이를 구했는데 파이썬도 동일하죠?


리스트 연산

리스트도 연산이 가능하다구요?

  • 가능하죠! 추후에 다룰 모듈 numpy에서 더더욱 자세히 배울 것이지만, 리스트끼리도 더하거나 뺄 수 있습니다. 아래 코드 볼까요?

  • ?? [0,0,0,0,0]이 나왔어야 하는거 아닌가요?

만약 이런 생각이 들었다면! 훌륭한 시행착오입니다. 파이썬 리스트를 연산할 때는 기본적으로 리스트와 리스트끼리의 합산이기 때문에 각각의 원소가 사칙연산되는 것은 아닙니다.

추후에 numpy라는 모듈을 배울텐데, 그 때가서 좀 더 자세히 배우게 될 것입니다.

profile
방구석백수 코드몽키

0개의 댓글