우당탕탕 개발공부

[커널 아카데미] 데이터 분석 부트캠프 18기_ Python 기초(1) 본문

⌛ BootCamp/[커널아카데미] 데이터분석 부트캠프

[커널 아카데미] 데이터 분석 부트캠프 18기_ Python 기초(1)

냥냥서 2025. 3. 10. 21:30

변수

- 데이터를 저장하고 추후에 사용할 수 있게 해주는 저장공간

- 이름 - 값 구성

 

변수 이름 = 저장할 값

a = 100
b = 10

 

변수 이름 규칙

- 영문자 + 숫자(혹은 언더바)의 형식 사용

💥 주의할 점
- 숫자가 맨 앞에 오면 X
- 언더바 외 특수문자 x
- 공백 x
- 소문자/대문자 구분 사용

 

 

변수의 종류 -> 자료형

1. 숫자형 -a,b

2. 문자형 -c

3. 리스트(lis) -d

4. 튜플(tuple) -e

5. 딕셔너리(dict) -f

6. 집합(set) -g

 

 


인덱스

- 첫 번째 위치는 0이고, -1로도 표현 가능

- : 를 통해 슬라이싱 가능

변수 [ 시작 인덱스 : 끝 인덱스 : 간격 ]

 

Q. ' Hello Python' 문자열을 거꾸로 뒤집어 출력하세요

s = 'Hello Python'

s[::-1]​

 

 

 

문자열 길이 구하기

- len( ) 사용

a = 'hello world'
print(len(a))

 

 

 

문자열 포맷팅

- 문자열 안에 어떤 값을 삽입하는 방법

format( )  사용

- f 를 맨 앞에 사용해서 삽입 가능!

 

num = 20
a = 'My favorite number is {}'.format(num)

print(a)
num = 20
a = f'My favorite number is {num}'

print(a)

Q. '김철수씨는 {}년생으로, {}월 {}일이 생일입니다. 김철수씨의 생년월일에는 1이 {}번 들어갑니다. 를 출력하세요

id_num = '19971015'

year = id_num[:4]
month = id_num[4:6]
day = id_num[6:]
cnt = id_num.count('1')

a = f'김철수씨는 {year}년생으로, {month}월 {day}일이 생일입니다. 
\n 김철수씨의 생년월일에는 1이 {cnt}번 들어갑니다.'

print(a)

 


리스트

- 요소들의 모음을 나타내는 자료형

- 요소들을 대괄호 [ ] 로 감싸주어 만들기 !

 

 

리스트 값 치환 -> 인덱싱을 통해 값 수정

 

append( )
extend( )
append는 리스트의 맨마지막에 요소 추가
extend는 리스트의 맨마지막에다른 리스트 추가

a = [1, 2, 3]
a.append(4)

결과 : [ 1, 2, 3, 4 ]
insert( ) 리스트의 특정 위치에 측정 요소 삽입 a = [1, 2, 3, 4]
a.insert(3,2)

결과 : [ 1, 2, 3, 2, 4 ]
remove( )
pop( )
remove는 특정 요소 제거
pop은 특정 위치의 요소를 제거한 후 반환
a = [1, 2, 3, 4]
a.remove(4)
a.pop(2)

결과 : [ 1, 2, 3 ]
결과 : 3
index( ) 리스트에 요소가 있는 경우, 인덱스 값 반환 a = ['a', 'b', 1, 2 ]
a.index(1)

결과 : 2
sort( )
sorted( )
reverse( )
sort는 정렬된 리스트 반환
sorted는 정렬된 리스트를 출력만 함
-> 리스트 자체를 바꾸지는 않음!

reverse는 내림차순으로 변환
a = [1, 20, 13, 2 ]
a.sort( )

결과 : [ 1, 2, 13, 20 ]

-------------------------------------------------------------------

a = [1, 20, 13, 2 ]
sorted(a, reverse=True)


결과 : [ 20, 13, 2, 1 ]

 

 

range 함수

# 간격 미입력시, 디폴트값 1
range(시작, 끝, 간격)

# list로 변환하고 싶은 경우, list( ) 사용하기
list(range())

 


튜플

- 리스트와 비슷하게 여러 요소를 묶을 수 있다

- 튜플의 요소는 수정/삭제 불가능  -> 값 치환  불가능!

- 소괄호( ) 감싸주어 만들기!

- 요소가 하나일 경우 ,를 뒤에 붙여야 함

 

튜플 함수 심화
# 다중 튜플의 경우, 정렬 기준을 정의하여 튜플 내 최댓값을 탐샏
max(튜플, key= lambda x:x[인덱스])

# 다중 튜플의 경우, 정렬 기준을 정의하여 튜플 내 최솟값을 탐샏
min(튜플, key= lambda x:x[인덱스])​


a = (('a',1),('b',15),('c',3),('d',-5),('e',-10))

print(max(a, key= lambda x:x[0]))
print(max(a, key= lambda x:x[1]))

print(min(a, key= lambda x:x[0]))
print(min(a, key= lambda x:x[1]))​

+ 절댓값을 기준으로 최댓값/최솟값을 탐색하려면?  --->  abs

print(max(a, key= lambda x:abs(x[0])))

 

 


딕셔너리

- 키(key) : 값(value) 의 쌍을 중괄호 { }로 감싸줌

- 키는 중복이 될 수 없고, 리스트는 키가 될 수 없음

- 위치값을 가지지 않기 때문에, 인덱싱 불가능

 

추가 딕셔너리변수명[ 추가할 키] = 추가할 값 dic[ 'country' ] = [ 'korea', 'US' ]
삭제 del 딕셔너리변수명[ 삭제할 키 ] del dic[ 'country' ] 

 

 

 

딕셔너리 키(key)로 값(value)찾기

: 딕셔너리변수명[ 찾을 키 ]

print(dic['name'])

 

keys( ) 키 반환 print( dic.keys() )
values( ) 값들 반환 print( dic.values() )
items( ) 키와 값 튜플 쌍으로 반환 print( dic.items() )
get( 원하는 값 ) 원하는 키 값에 대응되는 값을 반환 dic.get('name')
update( ) 딕셔너리에 새로운 딕셔너리 추가 dic1 = { 'a' : [1,2] , 'b' : [3,4] }
dic2 = { 'c' : 5, 'd' : [6,7,8 ] }

dic1.update(dic2)

결과 : {'a': [1, 2], 'b': [3, 4], 'c': 5, 'd': [6, 7, 8]}
zip( ) 튜플/리스트 두 개를 하나의 딕셔너리로 변환 keys = ( "a", "b" )
values = (1,2)
result = dict(zip(keys,values))

결과  : {'a': 1, 'b': 2}

 

 


집합

- 순서/중복 없는 자료형

- 중괄호 { }로 감싸서 표현

- 순서가 없기 때문에 인덱싱 불가!

 

intersection
OR  &
교집합
difference
OR -
차집합
union
OR | 
합집합

 

 


파이썬 변수 심화 - copy( )

 

copy 라이브러리는 객체를 복사, 복제하는데 사용

객체를 복사하면 원본 객체가 변경되어도 복사본 객체는 변경되지 않는다!