일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- DataFrame
- Machine Learning
- barh
- pandas filter
- matplotlib
- Slicing
- tree.fit
- plt
- 머신러닝
- 등차수열
- pandas
- 등비수열
- maplotlib
- 통계학
- 스터디노트
- MacOS
- 리스트
- 파이썬
- 자료구조
- pandas 메소드
- 문제풀이
- 조합
- 기계학습
- Folium
- 재귀함수
- 순열
- python
- SQL
- INSERT
- numpy
Archives
- Today
- Total
코딩하는 타코야끼
[스터디 노트] Week3_3일차 [unit1 ~ 22] - 자료구조 본문
728x90
반응형
1. 자료구조_1 ~ 3 [unit 01 ~ 13]
📍 자료구조
- 여러 개의 데이터가 묶여있는 자료형을 컨테이너 자료형이라고 하고 이러한 컨테이너 자료형의 데이터 구조를 자료구조라고 한다.
- 자료구조는 각각의 컨테이너 자료형에 따라서 차이가 있으며, 파이썬의 대표적인 컨테이너 자료형으로는 리스트(List), 튜플(Tuple), 딕셔너리(Dic), 셋트(Set)가 있다
📍 리스트(List)
- 배열과 같이 여러 개의 데이터를 나열한 자료구조
- ‘[ ]’를 이용해서 선언하고, 데이터 구분은 ‘ , ’를 이용한다.
- 숫자, 문자(열), 논리형 등 모든 기본데이터를 같이 저장할 수 있다.
- 리스트에 또 다른 컨테이너 자료형 데이터를 저장할 수도 있다.
📍 인덱스
- 인덱스란, 아이템에 자동으로 부여되는 번호표
- 리스트 아이템은 인덱스를 이용해서 조회 가능하다
num_l = [1, 2, 3, 4]
print(num_l[0])
print(num_l[1])
print(num_l[2])
print(num_l[3])
print("="*20)
for i in range(4):
print(num_l[i])
>>>
1
2
3
4
====================
1
2
3
4
📍 len( )
- 리스트 길이란, 리스트에 저장된 아이템 개수를 뜻한다.
- 파이썬의 내장 함수로, 문자열, 리스트, 튜플, 딕셔너리 등 여러 가지 데이터 타입의 길이(항목의 개수)를 반환합니다.
s = "안녕하세요"
print(len(s))
>>>
5
list = [1, 2, 3, 4, 5]
print(len(list))
>>>
5
dict = {"name": "John", "age": 30, "city": "New York"}
print(len(dict))
>>>
3
📍 리스트와 for문
- for문을 이용하면 리스트의 아이템을 자동으로 참조할 수 있다.
min_score = 60
scores = [
["국어", 58],
["영어", 77],
["수학", 89],
["과학", 99],
["국사", 50],
]
for item in scores:
if item[1] < min_score:
print(f"과락 과목: {item[0]}, 점수: {item[1]}")
>>>
과락 과목: 국어, 점수: 58
과락 과목: 국사, 점수: 50
📍 리스트와 while문
- while문을 이용하면 다양한 방법으로 아이템 조회가 가능하다.
cars = ["그랜저", "소나타", "말리부", "카니발", "쏘렌토"]
n = 0
while True:
print(cars[n])
n += 1
if n == len(cars):
break
>>>
그랜저
소나타
말리부
카니발
쏘렌토
📍 enumerate( )함수
- enumerate( ) 함수를 이용하면 아이템을 열거할 수 있다
sports = ["농구", "수구", "축구", "마라톤", "테니스"]
for idx, value in enumerate(sports):
print(f"{idx} : {value}")
>>>
0 : 농구
1 : 수구
2 : 축구
3 : 마라톤
4 : 테니스
sports = ["농구", "수구", "축구", "마라톤", "테니스"]
user = str(input("가장 좋아하는 스포츠 입력: "))
for idx, value in enumerate(sports):
if value == user:
print(f"{user}(은)는 {idx+1} 번째에 있습니다.")
>>>
가장 좋아하는 스포츠 입력: 마라톤
마라톤(은)는 4 번째에 있습니다.
📍 append( )
- 리스트에 아이템 추가
- append( ) 함수를 이용하면 마지막 인덱스에 아이템을 추가할 수 있다.
📍 insert( )
- 리스트의 특정 위치에 아이템 추가.
- insert( ) 함수를 이용하면 특정 위치(인덱스)에 아이템을 추가할 수 있다.
📍 pop( )
- 리스트의 아이템 삭제.
- pop( ) 함수를 이용하면 마지막 인덱스에 해당하는 아이템을 삭제할 수 있다.
- pop( )함수를 인덱스에 해당하는 아이템을 삭제할 수 있다.
📍 remove( )
- remove( ) 함수를 이용하면 특정 아이템을 삭제할 수 있다.
- remove( )는 한 개의 아이템만 삭제 가능하다. 만약 삭제하려는 데이터가 2개 이상이라면 while문을 이용하자.
📍 extend( )
- extend() 함수를 이용하면 리스트에 또 다른 리스트를 연결(확장)할 수 있다.
- " + " 덧셈 연산자를 이용해서 리스트를 연결할 수도 있다.
# 나와 친구가 좋아는 번호를 합치되 번호가 중복되지 않게 하는 프로그램을 만들자.
my_number = [1, 3, 4, 6, 7]
friend_number = [2, 3, 5, 8, 10]
print(f"my_num: {my_number}")
print(f"friend num: {friend_number}")
add_list = my_number + friend_number
print(f"add list: {add_list}")
result = []
for num in add_list:
if num not in result:
result.append(num)
print(f"result: {result}")
>>>
my_num: [1, 3, 4, 6, 7]
friend num: [2, 3, 5, 8, 10]
add list: [1, 3, 4, 6, 7, 2, 3, 5, 8, 10]
result: [1, 3, 4, 6, 7, 2, 5, 8, 10]
2. 자료구조_4 [unit 14 ~ 17]
📍 sort( )
- sort( ) 함수를 이용하면 아이템을 정렬할 수 있다.
📍 reverse( )
- reverse() 함수를 이용하면 아이템을 순서를 뒤집을 수 있다.
📍 리스트 슬라이싱
- [n:m]을 이용하면 리스트에서 원하는 아이템만 뽑아낼 수 있다.
- [n:m]을 이용하면 문자열도 슬라이싱이 가능하다.
- 슬라이싱을 이용해서 아이템을 변경할 수 있다.
- slice( )함수를 이용해서 아이템을 슬라이싱할 수 있다.
3. 자료구조_5 ~ 6 [unit 18 ~ 22]
📍 리스트 곱셈 연산
- 리스트를 곱셈 연산하면 아이템이 반복된다.
📍 index( )
- index(value) 함수를 value의 인덱스를 알아낼 수 있다.
📍 count( )
- count(value) 함수를 이용하면 특정 아이템의 개수를 알아낼 수 있다.
📍 del
- del 키워드를 이용하면 특정 아이템을 삭제할 수 있다.
📍 in과 not in 키워드
- in, not in 키워드를 이용하면 아이템의 존재 유/무를 알 수 있다.
- in, not in 키워드는 문자열에서도 사용 가능하다.
import random
sample_list = random.sample(range(1, 11), 5)
user = int(input("숫자 입력(환율 50%): "))
if user in sample_list:
print("빙공!!")
else:
print("다음 기회에~~")
print(f"random_number: {sample_list}")
print(f"user_number: {user}")
>>>
숫자 입력(환율 50%): 5
빙공!!
random_number: [2, 8, 5, 10, 3]
user_number: 5
⚡️ sort( ), sorted( )
- sort( ) 함수는 리스트를 "제자리"에서 정렬합니다. 즉, 새로운 리스트를 반환하지 않고 원래 리스트를 수정합니다
- 그래서 **sort( )**의 결과를 sort_list에 할당하면 None이 됩니다.
number = [4, 6, 1, 7, 3]
print(number)
sort_list = number.sort()
print(sort_list)
>>>
[4, 6, 1, 7, 3]
None
- 리스트를 정렬하고 출력하려면, 먼저 sort( )를 호출하고 그 후에 리스트를 출력해야 합니다
number = [4, 6, 1, 7, 3]
print(number)
number.sort()
print(number)
>>>
[4, 6, 1, 7, 3]
[1, 3, 4, 6, 7]
- 원래의 리스트를 정렬하지 않고 새로운 정렬된 리스트를 만들고 싶다면 sorted( ) 함수를 사용해야 합니다.
- 이 경우 sorted( )는 원래 리스트를 수정하지 않고 원래 리스트의 정렬된 버전을 새 리스트로 반환합니다.
number = [4, 6, 1, 7, 3]
print(number)
sort_list = sorted(number)
print(sort_list)
>>>
[4, 6, 1, 7, 3]
[1, 3, 4, 6, 7]
- sorted( )는 리스트 자료형으로 반환한다.
- sorted( )함수를 이용하면 튜플도 정렬할 수 있다.
number = 2, 4, 3, 1, 5
print(number)
print(type(number))
list_number = sorted(number)
print(list_number)
print(type(list_number))
>>>
(2, 4, 3, 1, 5)
<class 'tuple'>
[1, 2, 3, 4, 5]
<class 'list'>
반응형
'zero-base 데이터 취업 스쿨 > 스터디 노트' 카테고리의 다른 글
[스터디 노트] Week3_5일차 [unit39 ~ 53] - 자료구조 문제풀이 (0) | 2023.07.23 |
---|---|
[스터디 노트] Week3_4일차 [unit23 ~ 38] - 자료구조 (0) | 2023.07.23 |
[스터디 노트] Week3_2일차 [unit31 ~ 45] - 기초수학 문제풀이 (0) | 2023.07.19 |
[스터디 노트] Week3_1일차 [unit15 ~ 30] - 기초수학 (0) | 2023.07.19 |
[스터디 노트] Week2_5일차 [unit1 ~ 14] - 기초수학 (0) | 2023.07.19 |