0. 자료형
- Numbers / Boolean / String / List / Tuple / Dictionary / Set
- collection
- List, Tuple, Dictionary, Set
- iterable
- List, Tuple
1. Numbers
2. Boolean
3. String
- ”,’ 둘다 사용이 가능
- ””” 세개를 사용하는 경우는 멀티라인의 문자열
ms = """아아??
가나다
데이터 사이언스"""
print(ms)
---
아아??
가나다
데이터 사이언스
문자열 오프셋(offset) 인덱스
a = "abcdefghijk"
a[0], a[5], a[-2]
> ('a', 'f', 'j')
# [start:end]
a[1:3], a[:3], a[7:], a[-2:], a[:]
> ('bc', 'abc', 'hijk', 'jk', 'abcdefghijk')
# [start:end:strid]
a[::2], a[::3], a[2:8:2], a[::-1]
> ('acegik', 'adgj', 'ceg', 'kjihgfedcba')
# len
a[7:len(a)], a[7:]
('hijk', 'hijk')
.upper(), lower()
# 대문자, 소문자로 바꿔주는 함수
a = " FAST campus datascience "
a.upper()
' FAST CAMPUS DATASCIENCE '
find()
a.find("c")
=> c의 인덱스 출력
a.find("z")
=> z는 없기 때문에 -1 출력 됨
.count()
# 문자열에서 포함된 갯수를 리턴합니다.
a.count("a")
> 3
.lstrip(), .rstrip(), .strip()
# 공백제거
a.lstrip(), a.rstrip(), a.strip()
> ('FAST campus datascience ',
' FAST campus datascience',
'FAST campus datascience')
.replace()
# replace : 문자열을 변환
a.replace("a", "b")
> ' FAST cbmpus dbtbscience '
.endswith()
# 체이닝
a, a.endswith("science"), a.rstrip().endswith("science")
> (' FAST campus datascience ', False, True)
.join() 중요!!
# join : 리스트 데이터를 --> 문자열로 바꿔줌 중요!!!!!!!!!!
ls = ["test", "data", "fast"] #리스트를
",".join(ls)
>'test,data,fast' #문자열로
4. List
- 순서가 있는 데이터 집합
- 표기: []
리스트 offset
# 리스트 - offset
ls = ["fast", "campus", "data", "python"]
ls[1], ls[-1], ls[:3], ls[:-2], ls[::-1], d[2][1]
------------------------------------------------------
('campus',
'python',
['fast', 'campus', 'data'],
['fast', 'campus'],
['python', 'data', 'campus', 'fast'],
4)
.append()
# 데이터 추가
ls.append("test")
------------------------------------------------------
['fast', 'campus', 'data', 'python', 'test']
리스트 데이터 수정
# 리스트의 데이터 수정
ls[1] = "FAST"
---
> ['data', 'FAST', 'insert', 'insert', 'insert', 'test', 'campus']
.split() 중요!!
# 리스트로 변경 중요!!!!!!!!!!!!
s = "Beautiful is better than ugly."
result = s.split(" ")
---
> ['Beautiful', 'is', 'better', 'than', 'ugly.']
.sort()
# 정렬
ls.sort()
---
> ['campus', 'data', 'fast', 'python', 'test']
#단어 길이로 정렬
ls.sort(key=len)
---
> ['data', 'fast', 'test', 'campus', 'python']
ls.index("fast")
---
> 1
ls.insert(2, "insert")
---
>
['data',
'fast',
'insert',
'insert',
'insert',
'insert',
'test',
'campus',
'python']
.remove()
# 데이터를 삭제하는데 index 값이 가장 작은 데이터 한개만 삭제
ls.remove("insert")
> ['data', 'fast', 'insert', 'insert', 'insert', 'test', 'campus', 'python']
5. Tuple
- 리스트와 같이 순서가 있는 데이터 타입
- 데이터의 수정이 불가능
- 표기: ()
# 튜플 선언
tp1 = 1, 2, 3
tp2 = "a", "b"
tp3 = (1, "b")
tp1, tp2, tp3, type(tp1)
---
> ((1, 2, 3), ('a', 'b'), (1, 'b'), tuple)
tp1[2], tp1[::-1]
---
> (3, (3, 2, 1))
6. Dictionary
- 데이터의 순서가 없고 key, value의 쌍으로
- 선언 {key1:value1, key2:value2}
- key 값은 문자열이나 정수만 가능
dic = {
1: "one",
"A": ["data", "python"],
"숫자": 1234,
2: "two",
}
dic
dic["숫자"]
dic[2]
---
> {1: 'one', 'A': ['data', 'python'], '숫자': 1234, 2: 'two'}
> 1234
> "two"
.keys()
dic.keys()
---
> dict_keys([1, 'A', '숫자', 2])
.values()
dic.values()
---
> dict_values(['one', ['data', 'python'], 1234, '둘'])
.items()
dic.items()
---
> dict_items([(1, 'one'), ('A', ['data', 'python']), ('숫자', 1234), (2, '둘')])
.get()
#dic.get("A") => ['data', 'python']
dic.get(1)
---
> 'one'
print(dic.get(3, "no data"))
---
> no data
Quiz
#데이터를 리스트, 튜플, 딕셔너리로 나타내세요.
subjects = ["국어", "영어", "수학"]
points = [80, 90, 70]
#리스트 형태
ls = [("국어", 80), ("영어", 90), ("수학", 70)]
list(zip(subjects, points))
---
> [('국어', 80), ('영어', 90), ('수학', 70)]
#튜플 형태
tp = (('국어', 80), ('영어', 90), ('수학', 70))
#딕셔너리 형태
dic = {
"국어": 80,
"영어": 90,
"수학": 70,
}
7. 집합 Set (중복제거 기능, 집합연산)
- 중복되는 데이터가 없는 데이터 타입
- 교집합, 합집합, 차집합과 같이 집합 연산 가능
- 리스트에서 중복되는 데이터를 제거할때, 공동 데이터를 뽑아낼때 사용
- 수정이 안되기때문에 리스트로 형변환 한후에 수정해줘야 한다
- 형변환할때 순서가 항상 보장되는 것은 아니다.
ls = [1, 2, 3, 4, 1, 2, 3]
s = set(ls)
> {1, 2, 3, 4}
집합 연산
s1 = set([1, 2, 3, 4])
s2 = set([3, 4, 5, 6])
# 교집합
s1 & s2, s1.intersection(s2)
---
> ({3, 4}, {3, 4})
# 합집합
s1 | s2, s1.union(s2)
---
> ({1, 2, 3, 4, 5, 6}, {1, 2, 3, 4, 5, 6})
# 차집합
s1 - s2, s1.difference(s2)
---
> ({1, 2}, {1, 2})
리스트에서 공동 데이터 찾기
data1 = ["python", "test", "data"]
data2 = ["data", "fast", "test"]
set(data1) & set(data2)
---
> {'data', 'test'}
8. change datatype
- 데이터 타입을 변경할때는 그 타입에 따라서 변경이 가능하게도하고 불가능 하기도 한다.
문자열 -> 숫자
string = "1234"
number = int(string)
type(number), number, number + 123
---
> (int, 1234, 1357)
#형변환 될 값이 실제로 int형 이여야함!!!
string = "a"
int(string)
---
> 오류
숫자 -> 문자열
number = 1234
string = str(number)
type(string), string, "입력하신 숫자는 " + str(number) + " 입니다."
---
> (str, '1234', '입력하신 숫자는 1234 입니다.')
boolean 형변환
bool(""), bool("data"), bool(-1), bool(0), bool(23)
---
> (False, True, True, False, True)
문자열 -> 리스트
string = "ABCD"
ls = list(string)
---
> ['A', 'B', 'C', 'D']
튜플->딕셔너리
tp = ((1, "one"), (2, "two"))
dict(tp)
---
> {1: 'one', 2: 'two'}
tp = ((1, "one", 3), (2, "two", 4))
dict(tp)
------------------------------------------------------
오류...
Quiz
#리스트 데이터의 중복을 제거하고 내림차순으로 정렬하세요
ls = [1, 3, 2, 1, 3, 5, 7, 8, 7]
# 결과 : [8, 7, 5, 3, 2, 1]
------------------------------------------------------
# 중복제거
ls = list(set(ls))
# 오름차순으로 정렬
ls.sort()
# 역순으로 정렬
# ls.reverse()
ls = ls[::-1]
댓글남기기