[제로베이스] 데이터사이언스 1기_ 파이썬 기초 04_01. 자료구조

Dasol·2021년 10월 16일
0

Chapter 04_001. 자료구조란?

  • 여러 개의 데이터가 묶여있는 자료형을 컨테이너 자료형이라고 하고, 이러한 컨테이너 자료형의 데이터 구조를 자료 구조라고 한다.

다양한 자료 구조

  • 자료구조는 각가의 컨테이너 자료형에 따라서 차이가 있으며, 파이썬의 대표적인 컨테이너 자료형으로는 리스트(list), 튜플(Tuple), 딕셔너리(Dic), 셋트(Set)가 있다.

-list = 안에 있는 데이터를 언제든지 바꿀 수 있음
-Tuple = 안에있는 데이터를 바꿀 수 없음
-Dic = key value로 이뤄짐
-Set = 중복된 데이터가 허용되지 않음

student 1 = '홍길동' #단일데이터; 따로 데이터 관리
student 2 = '박찬호'
student 3 = '이용규'

#하나씩 관리하던 것을 리스트로 관리한다.
#list
students = ['홍길동', '박찬호', '이용규']
#각각의 데이터를 구분하기위해 콤마를 사용, 변수명 복수형, 시각적으로 코드를 판독하는데 도움이 된다.

print(students)
print(type(students))

#Tuple
students = ('홍길동', '박찬호', '이용규')
print(students)
print(type(students))

#Dic
#key와 value를 구분할 때 콜른을 이용
scores = {'kor':95, 'eng':80, 'mat':100}

print(scores)
print(type(scores))

#set
allSales = {100, 200, 200, 300}
print(allSales)
print(type(allSales))

#컨테이너 자료형을 for문에 넣을 수있음
for student in students:
    print(student)

List

  • 배열과 같이 여러 개의 데이터를 나열한 자료 구조
  • [] 을 이용해서 선언하고, 데이터 구분은 , 를 이용한다.
  • 숫자, 문자(열), 논리형 등 모든 기본 데이터를 같이 저장할 수 있다.
students = ['홍길동', '이용규', '3.14'] #'홍길동' = 아이템(요소)
  • 리스트에 또 다른 컨테이너 자료형 데이터를 저장할 수도 있다.
datas = [10, 20, 30, [40, 50]]

Index

  • 인덱스란 아이템에 자동으로 부여되는 번호표
  • 번호표는 무조건 0에서부터 시작한다.
  • 하나 하나의 데이터에 접근하고 싶을 경우 인덱스를 이용하면 된다.
students = ['박찬호', '홍길동', '이용규']
print(students[0])
print(students[1])

input:
numbers = [10, '20', 3.2]

print(type(numbers))
print(type(numbers[0]))
print(type(numbers[1]))

outcome:
<class 'list'>
<class 'int'>
<class 'str'>

#for문을 이용하여 짝수 인덱스 구분
students = ['박찬호', '홍길동', '이용규', '김철수']

for i in range(5):
    if i % 2 == 0:
        print('students[{}]: {}'.format(i, students[i])
    else:
        print('students[{}]: {}'.format(i, students[i])

아이템 개수

  • 리스트 길이란 리스트에 저장된 아이템의 개수를 뜻한다.
students = ['박찬호', '홍길동', '이용규', '김철수']

print(len(students))
students = ['박찬호', '홍길동', '이용규', '김철수']

for i in range(5):
    print(student[1])
    
#리스트가 길 경우 셀수 없으니
for i in range(len(students)):
    print(students[i])
#while 문 사용: length = 5보다 작은 index 만 출력:
students = ['박찬호', '홍길동', '이용규', '김철수', '이지영']

n = 0
slength = len(students)
while n < slength:
    print('n : {}'.format(n))
    print('students[{}] : {}'.format(n, students[n]))
    n += 1

-len 함수는 문자열에도 쓰인다. 공백도 포함해서 계산.

#변수명과 item 이용하면 한번에 모두 출력됨

input:
students = ['박찬호', '홍길동', '이용규', '김철수', '이지영']

for item in students:
    print(item)

output:
박찬호
홍길동
이용규
김철수
이지영

while 문

minScore = 60

scores = [['국어', 58],
          ['영어', 70],
          ['수학', 88],
          ['과학', 98],
          ['국사', 52]]

n = 0 #n번째 아이
while n < len(scores):
    if scores[n][1] < minScore: #n번째 아이템의 첫번째 index
        print('과락 과목: {}, 점수: {}'.format(scores[n][0], scores[n][1]))
n += 1 #무한반복 빠지지않도록

continue :

minScore = 60

scores = [['국어', 58],
          ['영어', 70],
          ['수학', 88],
          ['과학', 98],
          ['국사', 52]]

n = 0
while n < len(scores):
    if scores[n][1] >= minScore:
       n += 1
       continue

    print('과락 과목: {}, 점수: {}'.format(scores[n][0], scores[n][1]))
    n += 1

enumerate()함수

  • enumerate()함수를 이용하면 아이템을 열거할 수 있다.
sports = ['농구', '수구', '축구', '마라톤', '테니스']

for i in range(len(sports)):
    print('{} : {}'.format(i, sports[1]))

#위와 같은 기능을 아래와 같은 코드로 동일하게 사용할 수 있다.

for idx, value in enumerate(sports):
    print('{} : {}'.format(idx, valeu))
    
    
-enumerate()는 문자열에도 적용할 수 있다.

sports = ['농구', '수구', '축구', '마라톤']

for i in range(len(sports()))
    print('{} : {}'.format(idx, value))
profile
Learning Data Science

0개의 댓글