[python] Aliasing, 리스트와 문자열

May·2022년 6월 21일
0

python_기초

목록 보기
8/11

😅 Aliasing

: alias 에일리어스 가명

x = 5    # x값에 정수 5
y = x    # y값에 x지정
y = 3    # y값에 3지정 
print(x)     - 출력값 5
print(y)     - 출력값 3

✔️ python에서 어떤 값을 변수에 저장하면
그 값에 이름표를 달아주는 것이라고 생각할 수 있다!

x = [2, 3, 5, 7, 11]    # 1. x 에 리스트 지정
y = x      # 2. y에도 같은 리스트 지정
y[2] = 4   # 3. y 리스트 인덱스 2번에 4 값으로 change 
print(x)   # 4. 출력 [2, 3, 🌟4🌟, 7, 11]
print(y)   # 5. 출력 [2, 3, 4, 7, 11]

우린 y리스트의 값을 바꿔줬는데 왜 x리스트의 값도 함께 바뀔까??
👉 2번 코드로 인해 [2, 3, 5, 7, 11] 리스트에는 x, y이름표가 모두 달리고
y 리스트 값이 변경된다는 것은 x 리스트값도 함께 변경된다는 얘기!!
여기서 y는 x리스트의 가명, alias라고 할 수 있음. (서로 이름은 다르나, 같은 값임)

+ x리스트, y리스트 다르게 출력하기!

x = [2, 3, 5, 7, 11]    # 1. 리스트 x에 이름표 달리고 
y = list(x)   # 2. list 함수때문에 x리스트가 복사되어 y변수에 새로운 리스트가 만들어짐!
🌟 여기서, y는 x의 alias 가 아니다!! 🌟
y[2] = 4      # 3. y 리스트 인덱스 2번에 4로 바꿔주기
              # y리스트만 바뀌고 x리스트는 변경되지 않는다
print(x)    # 4. 출력 [2, 3, 5, 7, 11]
print(y)    # 5. 출력 [2, 3, 4, 7, 11] 

✔️ 정수형일 때 변하지 않지만 리스트일 때 변하는 이유
가변형 : list, dict
불변형 : tuple, str, int, bool, float
∴ 정수형은 불변형이라 변하지 않고 리스트나 사전은 가변형이라서 다른 이름이어도 같은 걸 지칭하면 내용이 변할 수 있다

+ aliasing 이라는 개념이 어디에 쓰인다기 보단,주의해야할 내용으로 기억하기
ex) b값만 수정해야 하는데 a 도 같이 수정되어 원하지 않는 결과값이 나올 수 있다

😅 리스트와 문자열

리스트는 문자열과 유사한 구조를 가지고 있다
🍃 리스트 인덱싱 🍃

alphabet_list = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J"]

# 리스트 인덱싱
print(alphabet_list[0])  # 출력값  A
print(alphabet_list[1])  # 출력값  B
print(alphabet_list[4])  # 출력값  E
print(alphabet_list[-1])  # 출력값  J

문자열도 똑같이 인덱싱 가능!!!
🍃 문자열 인덱싱 🍃

alphabet_string = "ABCDEFGHIJ"

# 문자열 인덱싱
print(alphabet_string[0])  # 출력값  A
print(alphabet_string[1])  # 출력값  B
print(alphabet_string[4])  # 출력값  E
print(alphabet_string[-1])  # 출력값  J

🍃 리스트 슬라이싱 🍃

alphabet_list = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J"]

# 리스트 슬라이싱
print(alphabet_list[0:5])  # 출력값  A
print(alphabet_list[4:])  # 출력값  B
print(alphabet_list[:]) 

결과

['A', 'B', 'C', 'D', 'E']
['E', 'F', 'G', 'H', 'I', 'J']
['A', 'B', 'C', 'D']
# 새로운 리스트가 만들어짐

🍃 문자열 슬라이싱 🍃

alphabet_string = "ABCDEFGHIJ"

# 문자열 슬라이싱
print(alphabet_list[0:5])
print(alphabet_list[4:])
print(alphabet_list[:]) 

결과

ABCDE
EFGHIJ
ABCD
# 새로운 리스트가 아닌 문자열이 출력된다!

✔ +로 문자열 연결하는 것처럼 리스트 연결도 가능

# 문자열 연결
str_1 = "Hello"
str_2 = "World"
str_3 = str_1 + str_2
print(str_3)  # 결과 : HelloWorld

# 리스트 연결
list_1 = [1, 2, 3, 4]
list_2 = [5, 6, 7, 8]
list_3 = list_1 + list_2
print(list_3)  # 결과 : [1, 2, 3, 4, 5, 6, 7, 8]

✔ len 함수 적용하기

my_list = [2, 3, 5, 7, 11]
print(len(my_list))  # 결과 : 5
# 리스트에 5개의 요소가 있기 때문

my_string = "Hello World!"
print(len(my_string))  # 결과 : 12
# 문자열의 문자, 띄어쓰기, 특수문자까지 모두 셈
profile
ฅ˘◡˘ฅ

0개의 댓글