Python의 배열

Jayce·2023년 5월 7일
0

Python 기초

목록 보기
2/10
post-thumbnail

오늘은 Python의 배열에 대해 공부해 보려고 합니다.


Array(배열)란 여러 원소를 하나의 묶음으로 관리하고 각 원소간에는 order(순서)가 존재하여 Index(인덱스)를 통해 접근하는 List(리스트)입니다.
통상 프로그래밍 언어에서 배열은 동일한 데이터 타입의 원소들로 구성되지만
파이썬에서는 각 원소의 데이터 타입이 동일하지 않아도 되고 심지어 다른 배열을 원소로 갖는 것도 허용 됩니다. 배열간의 비교는 동일 인덱스 끼리 각각 비교해 가는 방식으로 적용 됩니다.

그외의 방법으로 튜플, 딕셔너리가 존재합니다.

배열[Array]

  • 배열[Array] 또는 리스트[List]로 합니다.
  • 배열의 인덱스는 0부터 시작합니다.
  • 생성 후 값을 변경 및 추가, 삭제가 가능하기 때문에 추가 메모리 블록을 할당합니다.

튜플(Tuple)

  • 튜플(Tuple)은 배열이나 리스트와 비슷합니다.
  • 생성하고 나면 값을 변경 및 삭제가 불가능합니다.
  • 튜플의 인덱스 또한 0부터 시작합니다.
  • 데이터에 필요한 최소 메모리 블록만 할당하기에 메모리 효율이 좋습니다.

딕셔너리{Dictionary}

  • 딕셔너리 {Dictionary}는 사전형태의 자료구조입니다.
  • Key 와 Value으로 구분되며, Key를 사용하여 값에 접근 가능합니다.
  • 배열이나 튜플처럼 인덱스를 활용하여 Value 에 접근할 수 없습니다.
  • Key 를 사용하여 값을 추가, 변경, 삭제가 가능합니다.
  • 동일한 Key 자료는 존재할 수 없습니다.

이상의로 기본적인 특징에 대해 알아보고 코드로 여러가지 기능을 알아보겠습니다.


리스트[List] 기초

input

a=[1,3,5,7,9] # [] 대괄호 
print(a)
print(type(a))
a[0]=10 #변경 가능 
print(a[0])
print(a[-1])

output

[1, 3, 5, 7, 9]
<class 'list'>
10
9

해당 코드를 실행시키게 되며면 배열의 특징처럼
print(a[0])값은 0번째 인덱스 값인 1이 10으로 바뀌게 되어 출력하게 됩니다.
print(a[-1])은 제일 마지막 값을 출력하는 기능을 하기때문에 9라는 값을 출력하게됩니다.


리스트[List]응용

input

a=[1,2,3,4,5]
print(a[:2]) #0부터 1까지 
a=[1,2,3]
b=[4,5,6]
c=a+b  # 리스트 연결 
print(c) 
a=[1,2,3] 
b=a*3  # a 리스트가 3회 반복 
print(b)

output

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

해당코드는 리스트끼리 연결이 되고 전 시간에 공부한 단어 반복처럼 리스트 반복도 가능하다는 것을 알 수 있습니다.


2중배열

input

a=[1,2,3,['a','b','c']]
print(a[-1][0])

output

[1, 2, 3, ['a', 'b', 'c']]
a

2중배열을 사용한 예시입니다. a[0]~a[3]까지 배열이 생성이 되었고 a[3]에서 2중배열을 사용하여 a[3][0]~ a[3][2] 까지 생성하였습니다. 해당 코드를 실행하게 되면 마지막의 첫번째 배열을 찾게되고 값은 'a'가 되겠습니다.


insert,sort,reverse함수

input

a=[1,4,3,2]
a.insert(0,5) # 0 위치에 5 삽입
print(a)
a.sort()
print(a)

a=['a','c','b']
a.sort()
print(a)
a.reverse()
print(a)

output

[5, 1, 4, 3, 2][1, 2, 3, 4, 5]
['a', 'b', 'c']['c', 'b', 'a']

이번에는 insert를 이용하여 0번째 인덱스에 5를 추가하는 것과 sort를 통한 정렬을 하였습니다.
reverse는 뒤집어주는 함수입니다.


튜플(Tuple) 오류

input

t1=(1,2,'a','b')
print(t1)
print(type(t1))
t1[0]='c' #에러 

output

TypeError: 'tuple' object does not support item assignment

()를 이용하여 tuple(튜플)로 만들게 되면 값을 변경하지 못하는 특성으로 인해 오류가 나는 것을 알 수 있습니다.


튜플(Tuple)과 변수활용

input

t1=(1,2,3)
n1,n2,n3=t1 # 1개의 튜플로 저장됨 
print(n1)
print('{} {} {}'.format(n1,n2,n3))
print(f'{n1} {n2} {n3}') # format string
n1,n2=n2,n1 
print(f'{n1} {n2}')

output

1
1 2 3
1 2 3
2 1

해당 코드 처럼 튜플을 불러 올 수 있습니다.


리스트[List]와 튜플(Tuple) 변환

input

my_list=[1,2,3]
my_tuple=('x','y','z')
print(tuple(my_list)) #리스트를 튜플로
print(list(my_tuple)) #튜플을 리스트로 

output

(1, 2, 3)
['x', 'y', 'z']

(튜플)과 [리스트] 전환도 가능합니다.


딕셔너리{Dictionary}

input

# { key:value }
a={'name':'김철수'}
print(a)
print(type(a)) #자료형
a['age']=20  # 딕셔너리[key]
print(a)
a['age']=30 # value 변경
print(a)

output

{'name': '김철수'}
<class 'dict'>
{'name': '김철수', 'age': 20}
{'name': '김철수', 'age': 30}

딕셔너리의 특성인 key와 value로 구분하여 만들 수 잇습니다. 딕셔너리 또한 값의 변경이 가능합니다.


get,values,keys,items함수

input

a={'name':'김철수','phone':'01099993333','birth':'901231'}
print(a['name']) # 딕셔너리[key]
print(a.get('name')) # 딕셔너리.get(key)
print(a.values()) # value 리스트
print(a.keys()) # key 리스트 
print(a.items()) # 아이템(key-value) 리스트

output

김철수
김철수
dict_values(['김철수', '01099993333', '901231'])
dict_keys(['name', 'phone', 'birth'])
dict_items([('name', '김철수'), ('phone', '01099993333'), ('birth', '901231')])

딕셔너리의 각 key, value, item을 추출해주는 함수도 알아가면 좋습니다.


이상으로 배열에 대해 공부해 보고 예시를 풀어보는 시간이였습니다.
다음 시간에는 시간과 콘솔 입출력에 대해 알아보겠습니다.
그럼 오늘도 모두

power through to the end

profile
Dreamer

0개의 댓글