배열(Array)

Minji Lee·2023년 3월 13일
0

파이썬코테

목록 보기
1/3
post-thumbnail

배열(Array)
인덱스를 통해 데이터를 나열 → 파이썬에서는 리스트 타입이 배열 기능 수행

배열 장점

  1. 같은 종류의 데이터를 순차적으로 저장하여 효율적으로 관리하기 위해 사용
    → 마구잡이로 넣는 것이 아니라 같은 종류의 데이터들을 모아서 넣음

  2. 인덱스를 통해 빠른 접근 가능 → 데이터의 맨 앞 주소를 알면 바로 해당 데이터를 찾을 수 있음

배열 단점

  1. 연관된 데이터의 추가가 어렵다
    → 데이터를 추가할 경우, 추가공간을 기존공간에 연결하여 사용해야하는데 최악의 경우 따로 배열을 만들어야한다.
  2. 데이터가 가변적인 경우, 추가하거나 삭제하는 것이 번거로움(미리 배열최대길이 지정해야함)
    → 배열 내 데이터를 변경할 때, 중간에 있는 데이터를 삭제할 때 빈공간이 발생하여 뒤에 있는 데이터를 앞으로 옮겨야함

배열 in 파이썬와 C언어

c로 작성한 배열 예제

#include <stdio.h>

int main(int argc, char* argv[]){
	char country[3]="US"; //US+"/n"로 배열크기 3으로 설정
	print("%c%c\n", country[0], country[1]);
	print("%s\n",country)
	return 0;
}

python으로 작성한 배열 예제

country="US" # c언어 처럼 배열 길이를 미리 지정하지 않아도된다.
print(country)

country=country+'A'. # 본래의 배열과 달리 변경이 용이함
print(country)

파이썬과 배열

파이썬은 리스트를 통해 배열 나타냄

# 1차원 배열: 리스트로 구현할 경우
data=[1,2,3,4,5]
print(data)
# [1,2,3,4,5]
# 2차원 배열: 리스트로 구현할 경우
data=[[1,2,3],[4,5,6],[7,8,9]]
print(data)
# [[1,2,3],[4,5,6],[7,8,9]]
print(data[0])
# [1,2,3]
print(data[0][0])
# 1

프로그래밍 연습

연습 1번) 위의 2차원 배열에서 9,8,7 순서대로 출력해보기

print(data[-1][-1]) # 혹은 print(data[2][2])
print(data[-1][-2]) # 혹은 print(data[2][1])
print(data[-1][-3]) # 혹은 print(data[2][0])

연습 2번) 다음 dataset에서 전체 이름 안에 M이 몇번 나왔는지 빈도수 출력해보기

dataset = [
    "Braund, Mr. Owen Harris",
    "Cumings, Mrs. John Bradley (Florence Briggs Thayer)",
    "Heikkinen, Miss. Laina",
    "Futrelle, Mrs. Jacques Heath (Lily May Peel)",
    "Allen, Mr. William Henry",
    "Moran, Mr. James",
    "McCarthy, Mr. Timothy J",
    "Palsson, Master. Gosta Leonard",
    "Johnson, Mrs. Oscar W (Elisabeth Vilhelmina Berg)",
    "Nasser, Mrs. Nicholas (Adele Achem)",
    "Sandstrom, Miss. Marguerite Rut",
    "Bonnell, Miss. Elizabeth",
    "Saundercock, Mr. William Henry",
    "Andersson, Mr. Anders Johan",
    "Vestrom, Miss. Hulda Amanda Adolfina",
    "Hewlett, Mrs. (Mary D Kingcome) ",
    "Rice, Master. Eugene",
    "Williams, Mr. Charles Eugene",
    "Vander Planke, Mrs. Julius (Emelia Maria Vandemoortele)",
    "Masselmani, Mrs. Fatima",
    "Fynney, Mr. Joseph J",
    "Beesley, Mr. Lawrence",
    "McGowan, Miss. Anna",
    "Sloper, Mr. William Thompson",
    "Palsson, Miss. Torborg Danira",
    "Asplund, Mrs. Carl Oscar (Selma Augusta Emilia Johansson)",
    "Emir, Mr. Farred Chehab",
    "Fortune, Mr. Charles Alexander",
    "Dwyer, Miss. Ellen",
    "Todoroff, Mr. Lalio"
]
# 내가 작성한 코드
M_count=0
for i in range(len(dataset)):
    for j in range(len(dataset[i])):
        if dataset[i][j]=='M':
            M_count+=1
print(M_count)
# 38
# 강의 코드
m_count=0
for data in dataset:
    for index in range(len(data)):
        if data[index]=='M':
            m_count+=1
print(m_count)

0개의 댓글