1. 데이터 타입 복습 (3일차)
- 파이썬이 제공하는 데이터 타입은 아주 많음
- 변수를 미리 선언할 필요가 없음
- 다른 프로그래밍 언어와 달리, 변수에 모든 타입이 저장 가능
> 인터프리터: 한 줄 읽고 한 줄 번역해서 실행하는 언어들은 원래 변수에 특정 데이터 타입만 저장하지 않고 모든 타입을 다 넣을 수 있음
예제 1) list, tuple, dict, set (컬렉션 데이터 타입)
a1 = 4
print(a1, type(a1))
a1 = 4.5
print(a1, type(a1))
a1 = "4"
print(a1, type(a1))
a1 = list()
a1.append("1")
a1.append("2")
print(a1,type(a1[0]), type(a1))
a1 = [1,2,3]
print(a1, type(a1[0]), type(a1))
a1 = dict()
a1["school"] = "학교"
a1["rain"] = "비"
print(a1, type(a1))
a1 = {"school": "학교", "rain":"비"}
print(a1, type(a1))
2) 주소
- 컴퓨터의 메모리 공간을 관리하기 쉽게 0, 1,2 숫자를 붙여나가고 이를 번지 또는 주소라고 함
- 주소 부여 방식: 직접주소방식, 간접주소방식
> 직접주소방식: 주소를 찾아가 데이터가 존재하면 값
> 간접주소방식: 주소를 찾아가 데이터의 주소가 들어가 있음
- 파이썬: 모두 참조. 값타입 존재X. 전부 참조이므로 실제 데이터 크기는 상관없이 변수에는 값 자체가 아닌 번지만 저장
2. 인덱싱과 슬라이싱
- 변수가 배열 형태로 저장될 때
- dict 타입은 지원 x
- list, tuple, str(문자열)
s1 = "아메리카노, 에스프레소, 카페라떼, 캬라멜마끼아또"
print(s1[0])
print(s1[1])
print(s1[2])
print(s1[6],s1[7],s1[8],s1[9],s1[10])
- 토큰 분리: split 함수는 반환 값이 list 타입, 문자열에서 특정 문자 기준으로 잘라 냄
# str, tuple 둘 다 randomly 라 인덱싱을 통한 값 변경 불가
# s1[0]="어" # TypeError: 'str' object does not support item assignment
# 슬라이싱 [시작:종료:증감치] - 시작과 종료에는 값을 생각할 경우
# 처음부터 마지막까지 라는 의미가 있음
print(s1[::2]) # 0,2,4,6,8
print(s1[:5]) # 0~4까지 잘라내기
print(s1[6:11])
print(s1[::-1]) # 뒤로부터 역순으로 출력
s2 = s1[6:11]
print(s2)
# 토큰분리: spllt 함수는 반환 값이 list 타입, 문자열에서 특정 문자 기준으로 잘라 냄.
wordList = s1.split(",")
print(wordList)
# "연결할 문자열".join(리스트타입)
s2 = " ".join(wordList)
print(s2)
s2 = ",".join(wordList)
print(s2)
# 문자열은 한 번 값이 정해지면 자체는 수정 불가
s1 = "hello, python"
s1 = "H"+s1[1:] # H, ello,python 문자하고 합친 문자가 다시 s1에 전달
print(s1)
s1 = s1[:7] + "P" + s1[8:]
print(s1)
문제 1) 각 첫 글자만 대문자로 바꾸어서 출력
# 문제 : 각 첫 글자만 대문자로 바꾸어서 출력
colorList = ["red", "white", "green", "cyan", "magenta", "violet", "blue"]
print(colorList[0])
print(colorList[2])
print(colorList[4])
print(colorList[5])
print(colorList[:4])
print(colorList[4::-1]) # 4번부터 역순으로
### 내 풀이
for x in colorList:
print(x[0].upper()+x[1:], end=', ')
print()
### 선생님 코드
for color in colorList:
temp = color[0].capitalize() + color[1:]
colorList.append(temp)
print(colorList)
- insert(), remove(), del - 데이터 추가, 수정, 삭제
데이터 추가 수정 삭제
colorList2.append("Black") # 무조건 맨뒤에
colorList2.insert(0, "yellow") # 위치지정이 가능하다
print( colorList2 )
# 수정
colorList2[0] = "Yellow"
print(colorList2)
# 삭제 - 값으로
colorList2.remove("Red")
# 삭제 - 위치 값으로
del colorList2[5]
print(colorList2)
3. dict 타입
- 키(key) 와 값(value) 쌍으로 정보를 저장
- keys() 함수는 키만 반환
- values() 함수는 값만 반환
mydict = {"red":"빨간색","green":"초록색"}
mydict["blue"] = "파란색" # 추가 또는 수정, 키 값이 없으면 추가 / 추가 키 값이 있으면 수정으로 판단
# keys() 함수는 키만 반환
if "red" in mydict.keys():
print('red가 있다')
else:
print('red가 없다')
print(mydict.keys(), type(mydict.keys()))
print(mydict.values(), type(mydict.values()))
print(mydict['red'])
print(mydict['green'])
print(mydict['blue'])
# print(mydict['yellow']) # 키값이 없으면 예외 발생
# 삭제 후
del mydict['red']
print(mydict.keys())
반응형
'데이터분석' 카테고리의 다른 글
[23.06.07] Python 함수 - 04(3) (2) | 2023.06.07 |
---|---|
[23.06.07] Python 제어문, 2차원 배열- 04(2) (0) | 2023.06.07 |
[23.06.02] Python 다중 반복문 (for), 논리 연산자, 회고록 - 03(2) (0) | 2023.06.02 |
[23.06.02] Python for, while - 03(1) (0) | 2023.06.02 |
[23.06.01] Python list, for, tuple, dict, if - 02(3) (0) | 2023.06.01 |