파이썬

파이썬 데이터

reasonable 2021. 7. 16. 15:33

(1) Aliasing

 

파이썬에서 어떤 값을 변수에 저장하면 그 값에 이름표를 주는거라고 생각 가능합니다.

코드들을 통해서 예시를 살펴봅시다!

 

ex)

x = 2

y = x

y = 6

print(x)

print(y)

 

를 하면 x = 2, y = 6이라는 결과가 나오게됩니다.

정수 2가 변수 x에 지정이되고 정수 2가 y에 지정이 되며 변수y에 지정된 값을 6으로 바꿔줍니다.

 

ex)

x = [4, 6, 8, 10, 12]

y = x

y[3] = 16

print(x)

print(y)

 

리스트가 x에 지정이 되고 똑같은 리스트가 더불어 y에 지정이 되었습니다. 거기에서 y의 3번째 인덱스 값에 16을 대입하게되면

[4,6,8,10,12] 와 [4,6,8,16,12] 가 출력될거같나요?

둘다 [4,6,8,16,12] 가 출력되게 됩니다.

 

[4,6,8,10,12] 라는 리스트에 X라는 태그를 달고 추가로 Y라는 태그를 달았다고 생각해보죠. 그리고 나서 리스트에다가 Y[3] = 16을 해줘도 리스트는 Y의 태그가 달렸으면서 동시에 X의 태그도 달려있는 상태이기에 print를 해주면 똑같은 결과가 출력되는 것입니다.

 

이때 y를 alias(가명) 이라고 합니다.

 

ex)

x = [4, 6, 8, 10, 12]

y = list(x)

y[3] = 16

print(x)

print(y)

 

이렇게 해야 [4,6,8,10,12] 와 [4,6,8,16,12]가 출력이 됩니다. y = list(x)는 x리스트와 똑같이 복사한 리스트에 y라는 태그를 붙여준거고 거기에 y[3] = 16으로 할당해주면 16이 할당되지 않은 리스트와 할당된 리스트 2가지로 나뉘게 됩니다.

 

(2) 리스트와 문자열

 

리스트와 문자열은 같은 동작을 수행합니다. 문자열이 리스트처럼도 쓰일 수 있습니다.

한가지 차이점이 있다면 리스트는 원소의 추가나 삭제 등 수정이 가능하지만 문자열은 불가능하다는 점 입니다.

 

ex)

alphabets_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']

print(alphabets_list[0])

print(alphabets_list[1])

print(alphabets_list[2])

print(alphabets_list[-1])

 

alphabets_string = 'ABCDEFGHIJ'

print(alphabets_string[0])

print(alphabets_string[1])

print(alphabets_string[2])

print(alphabets_string[-1])

 

를 하면 ABCJ 가 반복해서 출력됩니다.

'' 안에 있는 문자열 알파벳들 하나하나가 리스트 안에 원소들이 된다는 뜻입니다.

슬라이싱에 대해서도 살펴봅시다.

 

ex)

alphabets_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']

print(alphabets_list[3:5])

print(alphabets_list[6:])

print(alphabets_list[:4])

 

alphabets_string = 'ABCDEFGHIJ'

print(alphabets_string[3:5])

print(alphabets_string[6:])

print(alphabets_string[:4])

 

['D', 'E']

['G', 'H', 'I', 'J']

['A', 'B', 'C', 'D']

DE

GHIJ

ABCD

 

와 같은 결과들이 출력 됩니다. 슬라이싱도 문자열과 리스트가 서로 같은 방식으로 작동합니다.

리스트와 문자열의 덧셈 연산에 대한 내용도 담겨있습니다.

 

ex)

list1 = [1, 2, 3, 4]

list2 = [5, 6, 7, 8]

list3 = list1 + list2

print(list3)

 

string1 = '1234'

string2 = '5678'

string3 = string1 + string2

print(string3)

 

[1, 2, 3, 4, 5, 6, 7, 8]

12345678

 

이라는 결과가 출력됩니다.

리스트끼리, 문자열끼리 서로 더하여 합칠 수 있다는 뜻입니다.

 

len함수를 문자열과 리스트에 적용한 결과입니다.

print(len(['H', 'E', 'L', 'L', 'O','W', 'O', 'R', 'L', 'D', '!']))

print(len("Hello, world!"))

 

을 하면 11 과 13이 출력됩니다.

, 와 ! 그리고 띄어쓰기도 길이에 포함합니다.

 

서두에 말씀드린 리스트와 문자열의 가장 큰 차이점에 대해서 살펴보려는데요, 리스트는 데이터를 바꿀 수 있지만, 문자열은 데이터를 바꿀 수 없다는 것입니다.

리스트와 같이 수정 가능한 자료형을 'mutable'한 자료형이라고 부르고, 문자열과 같이 수정 불가능한 자료형을 'immutable'한 자료형이라고 부릅니다. 숫자, 불린, 문자열은 모두 immutable한 자료형입니다.

 

ex)

name = "python"

name[0] = "k"

print(name)

 

이렇게 하면 오류가 생긴다는 겁니다. 문지열을 함부로 바꿀 수 없으니까요.

'파이썬' 카테고리의 다른 글

리스트(3)  (0) 2021.07.14
for반복문  (0) 2021.07.13
리스트(2)  (0) 2021.07.08
리스트  (0) 2021.07.06
제어문  (0) 2021.07.04