Dev./Python

Python - 배열

Ivan'show 2023. 6. 13.
728x90
반응형
  • Python 에서 배열은 하나의 식별자로 여러 데이터 항목을 저장할 수 있는 객체이다.
  • 동일한 데이터 유형의 요소 집합을 저장해야 할 경우 배열이 유용하다.
  • Python 에서 배열의 크기는 동적으로 증가하거나 감소할 수 있다.
  • 배열과 리스트는 다르다. 배열은 리스트보다 적은 메모리를 사용한다.
  • 1차원 배열 : 단일 행, 다중 열
  • 다차원 배열 : 다중 행, 다중 열

배열

# 배열 생성 및 원소 접근
import array
stu_roll = array.array("i", [101, 102, 103, 104, 105])
print(stu_roll[0])
print(stu_roll[1])
print(stu_roll[2])
print(stu_roll[3])
print(stu_roll[4])
# 101
# 102
# 103
# 104
# 105

print("for in 사용")
for element in stu_roll:
    print(element)
# 101
# 102
# 103
# 104
# 105

print("인덱스를 이용한 순회")
n = len(stu_roll)
for i in range(n):
    print(i, "=", stu_roll[i])
# 0 = 101
# 1 = 102
# 2 = 103
# 3 = 104
# 4 = 105

print("인덱스를 사용한 while 루프 배열 순회")
i = 0
while i < n:
    print(stu_roll[i])
    i += 1
# 101
# 102
# 103
# 104
# 105

# 다차원 배열
multi_dimentional_array = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

print("Element at (0, 0): ", multi_dimentional_array[0][0])
print("Element at (1, 2): ", multi_dimentional_array[1][2])
print("Element at (2, 1): ", multi_dimentional_array[2][1])
# Element at (0, 0):  1
# Element at (1, 2):  6
# Element at (2, 1):  8

for i in range(len(multi_dimentional_array)):
    for j in range(len(multi_dimentional_array)):
        print(multi_dimentional_array[i][j], end=' ')
    print()
# 1 2 3
# 4 5 6
# 7 8 9

배열 관련 메서드

# 배열관련 메서드
import array

stu_roll = array.array("i", [101, 102, 103, 104, 105])
n = len(stu_roll)
i = 0
while i < n:
    print(stu_roll[i])
    i += 1
# 101
# 102
# 103
# 104
# 105

# 배열 insert()
print("Array After Insert")
stu_roll.insert(1, 106)
stu_roll.insert(3, 107)

n = len(stu_roll)
i = 0
while i < n:
    print(stu_roll[i])
    i += 1
# 101
# 106
# 102
# 107
# 103
# 104
# 105

# 배열 remove()
print("Array After remove")
stu_roll.remove(101)
n = len(stu_roll)
i = 0
while i < n:
    print(stu_roll[i])
    i += 1
# 106
# 102
# 107
# 103
# 104
# 105

# 배열 pop()
print("Array After pop()")
stu_roll.pop()
n = len(stu_roll)
i = 0
while i < n:
    print(stu_roll[i])
    i += 1
# 106
# 102
# 107
# 103
# 104

# 배열 메소드
print("Array index()")
stu_roll = array.array("i", [101, 102, 103, 104, 105])
print(stu_roll.index(101))
# 0

# 배열 extend()
print("Array extend()")
arr = array.array("i", [201, 208, 209])
stu_roll.extend(arr)

n = len(stu_roll)
i = 0
while i < n:
    print(stu_roll[i])
    i += 1
# 101
# 102
# 103
# 104
# 105
# 201
# 208
# 209

# 배열 reverse()
print("Array reverse()")
stu_roll.reverse()

n = len(stu_roll)
i = 0
while i < n:
    print(stu_roll[i])
    i += 1
# 105
# 104
# 103
# 102
# 101
  • insert () : 배열의 특정 인덱스에 원소를 삽입
  • remove () : 배열에서 첫 번째로 발견되는 특정 원소를 삭제
  • pop () : 배열에서 마지막 요소를 제거하고 해당 요소를 반환
  • index () : 배열에서 특정 원소를 첫 번째 인덱스를 찾는 데 사용
  • extend () : 한 배열의 요소를 다른 배열의 끝에 추가
  • reverse () : 배열의 원소를 역순으로 정렬하는 데 사용

배열 슬라이싱

from array import array

# import array

stu_roll = array("i", [101, 102, 103, 104, 105, 106, 107])

# 배열 슬라이싱
print("Array slice()")
print(stu_roll[1:5])
# array("i", [102, 103, 104, 105])
print(stu_roll[0:])
# array("i", [101, 102, 103, 104, 105, 106, 107])

n = len(stu_roll)
for i in range(n):
    print(i, "=", stu_roll[i])
# 0 = 101
# 1 = 102
# 2 = 103
# 3 = 104
# 4 = 105
# 5 = 106
# 6 = 107

print("인덱스 1 부터 5까지(인덱스 5 포함x)")
a = stu_roll[1:5]
for i in a:
    print(i)
# 102
# 103
# 104
# 105

print("인덱스 0 부터 끝까지")
b = stu_roll[0:]
for i in b:
    print(i)
# 101
# 102
# 103
# 104
# 105
# 106
# 107

print("인덱스 처음부터 5까지(인덱스 5 포함x)")
c = stu_roll[:5]
for i in c:
    print(i)
# 101
# 102
# 103
# 104
# 105

print("인덱스 마지막 4개")
d = stu_roll[-4:]
for i in d:
    print(i)
# 104
# 105
# 106
# 107

print("인덱스 0부터 6번째 까지(인덱스 6 포함 x) 2개씩 건너뛰어")
e = stu_roll[0:6:2]
for i in e:
    print(i)
# 101
# 103
# 105

print("인덱스 마지막 인덱스로 부터 5개 요소 중 맨앞 2개의 요소[-5-(-3)=-2]를 출력")
f = stu_roll[-5:-3]
for i in f:
    print(i)
# 103
# 104

# 문자열
str1 = "LikeLion"
str2 = "LikeLion"
str3 = """
동해물과 백두산이
마르고 닳도록
하느님이 보우하사
우리나라 만세
"""

print(str1)
print(str2)
print(str3)
# LikeLion
# LikeLion

# 동해물과 백두산이
# 마르고 닳도록
# 하느님이 보우하사
# 우리나라 만세

str4 = "Hello 'LikeLion' How are you?"
str5 = "Hello 'LikeLion' How are you?"

print(str4)
# Hello "LikeLion" How are you?
print(str5)
# Hello "LikeLion" How are you?

str6 = "Hello \\n How are you?"
str7 = "Hello \\\\ How are you?"
str8 = r"Hello \\n How are you?"

print(str6)  # 줄바꿈
# Hello
# How are you?
print(str7)
# Hello \\ How are you?
print(str8)  # escape 문자 생략해버리는
# Hello \\n How are you?
print(type(str8))

str9 = "Hello \\\\ How are \\t you?"

print(str9)  # tab 삽입
# Hello \\ How are          you?

# 메모리 할당
# 파이썬에서 문자열은 객체로 취급
# 문자열은 불변 객체로 생성된 후에는 변경할 수 없다.
# 파이썬에서 변수는 모두 참조값을 가지고 있다.
# 가변 객체(Mutable Object), 불변 객체(Immutable Object)

def greet(name, msg):
    print(name, msg)

greet(name="철수", msg="안녕하세요!")
greet(msg="안녕하세요!!", name="철수")
# 철수 안녕하세요!
# 철수 안녕하세요!!

def display_info(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}: {value}")

display_info(name="철수", age=25, city="서울")
# name: 철수
# age: 25
# city: 서울
728x90
반응형

댓글