이번 글에선 리스트와 문자열에 대해서 알아보겠습니다!
그 전에 먼저 print를 할 때
for i in range(0,5):
print(i)
이렇게 하면
이렇게 줄바꿈이 된 채로 나왔는데요!
만약에 나는 0 1 2 3 4 이런식으로 출력하고싶다! 하시는 분들도 있겠져?? 그럴 경우엔 print안에 end를 추가하면 됩니다!
for i in range(0,5):
print(i, end=' ')
이렇게 end=' '를 하면 출력이 끝난 후 줄바꿈이 되지 않고 공백이 들어가게 되는 겁니다!
책에서 지금은 나오지 않지만 제가 아는 걸 적어보자면,,
print(1,2,3,4,5)
이런 경우 1 2 3 4 5 이렇게 공백이 생긴채로 출력이 되는데요! 이 사이를 다른 거로 바꾸고싶다! 하시는 분들도 있을거예요!
그럴 경우엔 print 안에 sep을 추가해주면 됩니다! 한번 해볼게요!
print(1,2,3,4,5,sep='')
그럼 이렇게 공백없이 출력이 됩니다!
자 이제 리스트에 대해서 알아봅시다!
앞에서 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) 연산 |
이 두 가지 입니다!
먼저 인덱싱 연산이란, 리스트에 담겨 있는 값들 중 하나를 참조하는 연산을 뜻합니다.
예를 들어보면~
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] |
이렇게 음수 인덱스 값을 표현할 수 있습니다~
그 다음으로 슬라이싱 연산에 대해 알아보겠습니다~
슬라이싱 연산은 인덱싱 연산과 비슷한데 인덱싱 연산은 딱 하나만을 대상으로 하는 연산이라면 슬라이싱 연산은 리스트에 속한 값들 중 하나 이상의 값들을 다룰 수 있는 연산입니다!
예를 들어보면
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을 넣으시면 됩니당
앞에서 리스트형 데이터를 알아보았는데요~
사실 스트링형 데이터라는 것도 있습니다!
스트링형 데이터는 아마 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()이라는 함수입니다!
이 함수는 인자로 리스트나 문자열을 넣으면 그 길이를 반환해주는 함수입니다!
print(len("Hello"))
print(len([1,2,3]))
이렇게 해주면 5와 3이 나오게 됩니다~
그리고 min()함수와 max()함수가 있는데요!
이름만 봐도 뭔가 예측이 될 거 같죠??
min() 함수는 리스트에 저장된 값 중에서 가장 작은 값을 반환해주는 함수이고
max() 함수는 리스트에 저장된 값 중에서 가장 큰 값을 반환해주는 함수입니다!
print(min([1,2,3,4,0,-1]))
print(max([1,2,3,4,0,-1]))
출력은 -1과 4가 되겠져??
그럼 이번 글은 여기서 마치도록 하겠습니다! :D
'Python' 카테고리의 다른 글
Chapter 07. True, False 그리고 if와 그 형제들 (0) | 2021.01.09 |
---|---|
Chapter 06. 리스트와 문자열의 함수들 (0) | 2021.01.08 |
Chapter 04. int형 데이터와 float형 데이터 (0) | 2021.01.07 |
Chapter 03. 프로그램 사용자로부터의 입력 그리고 코드의 반복 (0) | 2021.01.05 |
Chapter 02. 간단한 함수 만들기 (0) | 2021.01.05 |