이번 글에선 리스트와 문자열에 대해서 알아보겠습니다!

print 추가 기능

그 전에 먼저 print를 할 때

for i in range(0,5):
    print(i)

이렇게 하면

이렇게 줄바꿈이 된 채로 나왔는데요!

end

만약에 나는 0 1 2 3 4 이런식으로 출력하고싶다! 하시는 분들도 있겠져??
그럴 경우엔 print안에 end를 추가하면 됩니다!

for i in range(0,5):
    print(i, end=' ')


이렇게 end=' '를 하면 출력이 끝난 후 줄바꿈이 되지 않고 공백이 들어가게 되는 겁니다!

sep

책에서 지금은 나오지 않지만 제가 아는 걸 적어보자면,,

print(1,2,3,4,5)

이런 경우 1 2 3 4 5 이렇게 공백이 생긴채로 출력이 되는데요! 이 사이를 다른 거로 바꾸고싶다! 하시는 분들도 있을거예요!

그럴 경우엔 print 안에 sep을 추가해주면 됩니다! 한번 해볼게요!

print(1,2,3,4,5,sep='')


그럼 이렇게 공백없이 출력이 됩니다!

리스트(list)

자 이제 리스트에 대해서 알아봅시다!

앞에서 int형 데이터와 float형 데이터에 대해 알아보았는데요~

리스트도 데이터의 종류중 하나입니다!

리스트의 표현

리스트의 표현은 대괄호[ ]안에 데이터들을 넣는건데요~

[1, 2, 3]은 정수 1, 2, 3을 묶어 놓은 리스트형 데이터 입니다!

이렇게 리스트는 여러 개의 값을 묶는데 사용이 되고 [1,"Hello", 11.8] 이렇게 형이 다른 값들도 한꺼번에 묶을 수 있습니다!

물론 리스트 안에 리스트도 가능하고, 리스트를 변수에 저장하는 것도 가능합니다!

리스트의 연산

그럼 리스트의 연산도 알아봐야겠져??

앞서 알아본 int형, float형 값은

+	덧셈
-	뺄셈
*	곱셈
**	거듭제곱
/	실수형 나눗셈
//	정수형 나눗셈
%	나머지가 얼마?

이렇게 계산을 할 수 있었는데요!

리스트형 데이터도 리스트끼리 덧셈 연산을 할 수 있습니다!

st=[1,2,3]
st+=[4,5]
print(st)


이렇게 할 수 있고 또한 곱셈 연산도 가능합니다!

st=[1,2,3]
st*=2
print(st)


이렇게 곱하기를 하면 곱한 숫자만큼 리스트를 늘리게 됩니다~

여기서 중요한 연산 두 개가 있는데요!

  [ ]	인덱싱(indexing) 연산
  [ : ]	슬라이싱(slicing) 연산

이 두 가지 입니다!

인덱싱(Indexing) 연산

먼저 인덱싱 연산이란, 리스트에 담겨 있는 값들 중 하나를 참조하는 연산을 뜻합니다.

예를 들어보면~

st=[1,2,3,4,5]
n1=st[0]
n2=st[3]
print(n1, n2)

이렇게 표현을 할 수 있는데요~

주의할 점

인덱싱 연산에서 리스트의 첫 번째 값을 나타날 땐 1이 아니라 0을 사용합니다!

그래서 st[0]은 리스트의 첫 번째 값, 즉 1을 가리킵니다!

그래서 n1에 1을 저장하게 되고, st[3]은 st의 네 번째 값을 가리키기 때문에 4를 저장하게 됩니다!

그래서 print(n1, n2)를 할 경우 1 4가 출력되는 것을 볼 수 있습니다.

이렇게 값을 꺼내는 것 뿐만 아니라 수정까지 할 수 있습니다!

st=[1,3,3,4,5]
st[1]=2
print(st)

이렇게요!

그럼 리스트는 [1,3,3,4,5]에서 [1,2,3,4,5]로 바뀌어 출력은 [1,2,3,4,5]가 출력되게 됩니다~

하지만 리스트의 인덱스 값에 음수도 올 수 있습니다!

리스트 st=[1,2,3,4,5]가 있다고 할 때

 데이터    1	  2	   3	    4	     5
 리스트  st[0]   st[-4]   st[-3]   st[-2]   st[-1]

이렇게 음수 인덱스 값을 표현할 수 있습니다~

슬라이싱(Slicing) 연산

그 다음으로 슬라이싱 연산에 대해 알아보겠습니다~

슬라이싱 연산은 인덱싱 연산과 비슷한데 인덱싱 연산은 딱 하나만을 대상으로 하는 연산이라면 슬라이싱 연산은 리스트에 속한 값들 중 하나 이상의 값들을 다룰 수 있는 연산입니다!

예를 들어보면

st=[1,2,3,4,5,6,7,8,9,10]
st2=st[3:6]
print(st2)

두 번째 줄에서 슬라이싱 연산이 쓰인 모습을 볼 수 있는데요~

st[3:6]은 st[3]~st[5]의 값들을 말하고 좌측에 st2=에 있으니 st2에 4,5,6을 저장한다는 뜻이겠져??

그래서 print를 해보면

이렇게 출력이 되는 모습을 볼 수 있습니다!

여기서도 값을 수정할 수 있는데요!

위의 st에서 st[3:6]부분을 0으로 바꿔보겠습니다!

st=[1,2,3,4,5,6,7,8,9,10]
st[3:6]=[0,0,0]
print(st)

이렇게 st[3]~st[5]의 값들을 0으로 바꿔보었습니다~

다른 방법도 있습니다!

  • 첫 번째 값부터 교체를 진행할 경우엔 첫번째 위치의 인덱스 값인 0을 생략해서 쓸 수 있습니다.
st=[1,2,3,4,5,6,7,8,9,10]
st[:3]=[0,0,0,0]
print(st)

  • 마지막 위치의 값까지 교체할 경우엔 마지막에 해당하는 인덱스 값도 생략할 수 있습니다.
st=[1,2,3,4,5,6,7,8,9,10]
st[5:]=[0,0,0,0,0,0]
print(st)

  • 리스트 전체를 교체하는 경우 둘 다 생략할 수 있습니다.
st=[1,2,3,4,5,6,7,8,9,10]
st[:]=[0,0,0,0]
print(st)

st=[1,2,3,4,5,6,7,8,9,10]
st[:]=[]
print(st)

근데 리스트에서 몇칸씩 띄어진 값들을 가져오고 싶을 때도 있자나여...?

그런 경우에는!

st=[1,2,3,4,5,6,7,8,9,10]
st2=st[0:5:2]
print(st2)

이렇게 해주면 st[0]부터 st[4]까지의 수 중에서 2칸씩 뛰면서 st2에 저장이 됩니다!

그럼 st2에는 [1,3,5]가 저장이 되겠져??

뭐 n칸 뛰면서 저장하고싶다! 그러면 2 대신에 n을 넣으시면 됩니당

스트링(String, 문자열)

앞에서 리스트형 데이터를 알아보았는데요~

사실 스트링형 데이터(문자열 데이터)라는 것도 있습니다!

스트링형 데이터는 아마 Chapter 03에서 한번 보셨을 거예요~

- input() 함수로 받을 때 숫자를 입력받아도 문자열로 처리해서 eval() 함수를 배웠습니다!

스트링형 데이터는 큰따옴표와 작은따옴표 중에서 아무거나 써도 상관없습니다!

다만 출력될 땐 작은따옴표로 보여줍니다~

문자열 데이터는 리스트형 데이터와 유사한 점이 많습니다!

리스트에서 배웠던 거니까 간단히 예시만 들어놓고

st1="hello"
st2="world"

print(st1, st2)

st3=st1*2
print(st3)

print(st1[2])

st4=st1[1:3]
print(st4)


하 지 만!!!!

⭐리스트와 달리 문자열은 내용을 바꾸지는 못합니다!⭐

추가

추가로 유용하게 쓰일 함수 몇개를 배워보겠습니다!

len()

먼저, len()이라는 함수입니다!

이 함수는 인자로 리스트나 문자열을 넣으면 그 길이를 반환해주는 함수입니다!

print(len("Hello"))
print(len([1,2,3]))

이렇게 해주면 5와 3이 나오게 됩니다~

min(), max()

그리고 min()함수와 max()함수가 있는데요!

이름만 봐도 뭔가 예측이 될 거 같죠??

min() 함수는 리스트에 저장된 값 중에서 가장 작은 값을 반환해주는 함수이고

max() 함수는 리스트에 저장된 값 중에서 가장 큰 값을 반환해주는 함수입니다!

print(min([1,2,3,4,0,-1]))

print(max([1,2,3,4,0,-1]))

출력은 -1과 4가 되겠져??

그럼 이번 글은 여기서 마치도록 하겠습니다! :D

profile
🖥 나는 무너🐙 꿈을 꾸는 무너 🖥

0개의 댓글