Programing/Python
#데이터 타입과 컬렉션 - 2
CouqueD'asse
2022. 6. 14. 15:16
2장 문자열 타입의 이해와 활용
문자열
- 복수개의 문자를 순서대로 나열 한 것
- 문자열은 ' 혹은 " 사이에 문자를 넣어서 생성
a = 'hello world'
b = "hello world"
c = '''hello
world'''
d = """hello
world"""
-1 인덱스
- -1이 가장 마지막 인덱스를, -2가 마지막에서 두번째 인덱스를 의미함
a = 'hello world'
b = "hello world"
print(a[-1])
print(b[-2])
d
l
인덱스의 범위
- 인덱스는 0 ~ 문자열의 길이 범위만 유효
- 음수 인덱스는 -문자열의 길이 ~ -1 범위만 유효
문자열 slicing
- 부분 문자열을 추출
- 시작, 끝 인덱스가 생략되어 있다면, 0부터 혹은 끝까지로 간주
b = "hello world"
b[0:4]
b[:4]
Out: hell
replace()
- 문자열 내의 특정 문자를 치환
a = 'hello world'
a.replace('h', 'j')
Out: 'jello world'
format()
- 문자열 내의 특정한 값을 변수로부터 초기화하여 동적으로 문자열을 생성
temperature = 25.5
prob = 80.0
a = '오늘 기온 {}도 이고, 비 올 확률은 {}% 입니다.'.format(temperature, prob)
print(a)
오늘 기온 25.5도 이고, 비 올 확률은 80.0% 입니다.
split()
- 문자열을 특정한 문자 구분하여 문자열의 리스트로 치환
a = 'hello world what a nice weather'
a.split()
Out: ['hello', 'world', 'what', 'a', 'nice', 'weather']
a = 'hello world what a nice weather'
a.split('w')
Out: ['hello ', 'orld ', 'hat a nice ', 'eather']
3장 컬렉션 타입의 이해 - list, tuple
리스트 & 튜플
- 복수개의 값을 담을 수 있는 데이터 구조
- list - mutable (생성된 후에 변경 가능)
- tuple - immutable (생성된 후에 변경 불가능)
리스트 초기화
- []안에 값을 담아서 생성
- list() 함수로 생성
- str.split() 함수로 생성
a = ['A', 'B']
print(a)
b = [1, 2, 3, 4, a]
print(b)
['A', 'B']
[1, 2, 3, 4, ['A', 'B']]
a = 'hello wolrd'
b = list(a)
print(b)
['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'l', 'r', 'd']
a = 'hello world nice'
b = a.split()
print(b)
['hello', 'world', 'nice']
리스트 indexing
- 문자열 인덱스와 동일
a = [1, 2, 3, 5, 7, 8]
print(a[2])
3
# 문자열은 불변 개체
a = 'hello world'
print(a)
b = 'jello world'
c = 'j' + a[1:]
d = a.replace('h', 'j')
print(c)
print(d)
print(a)
hello world
jello world
jello world
hello world
a = [1, 2, 3, 4, 5]
a[0] = 100
print(a)
[100, 2, 3, 4, 5]
a = [1, 2, 3, 4, 5, 6, 7, 8]
a[:5]
[1, 2, 3, 4, 5]
# slicing
# start:end:increment(1)
a[1:7:2]
[2, 4, 6]
append()
- 리스트의 끝에 항목을 추가
a = ['hello', 'world']
a.append('A')
print(a)
['hello', 'world', 'A']
extend()
- 리스트를 연장
- += 로도 가능
a = [1, 2, 3, 4, 5]
b = [6, 7, 8]
a.extend(b) # a += b
print(a)
[1, 2, 3, 4, 5, 6, 7, 8]
insert()
- 리스트의 원하는 위치에 추가
- 앞에 인덱스를 뒤에 아이템을 명시
a = [1, 2, 3, 4, 6]
a.insert(3, 10)
print(a)
[1, 2, 3, 10, 4, 6]
remove()
- 값으로 항목을 삭제
a = [1, 2, 3, 4, 5, 2]
a.remove(2)
print(a)
[1, 3, 4, 5, 2]
pop()
- 지우고자 하는 아이템을 반환 후 삭제
a = [1,2,3,4,5,6]
a.pop()
print(a)
[1, 2, 3, 4, 5]
a = [1,2,3,4,5,6]
a.pop(0)
print(a)
[2, 3, 4, 5]
a = [1,2,3,4,5,6]
b = a.pop(3)
print(a)
print(b)
[1, 2, 3, 5, 6]
4
index()
- 찾고자 하는 값의 인덱스 반환
a = [2,4,5,7,21]
a.index(2)
Out: 0
in 키워드
- 리스트 내에 해당 값이 존재하는지 확인
- value in [list]
- True, False 반환
a = [1,2,3,4,5,10]
b = 7
c = b in a
print(c)
False
list 정렬
- sort() : 이스트 자체를 내부적으로 정렬
- sorted() : 리스트의 정렬된 복사본을 반환
a = [9, 6, 5, 4, 3, 13, 40]
a.sort()
print(a)
[3, 4, 5, 6, 9, 13, 40]
a = [9, 6, 5, 4, 3, 13, 40]
a.sort(reverse=True)
print(a)
[40, 13, 9, 6, 5, 4, 3]
b = sorted(a)
print(b)
[3, 4, 5, 6, 9, 13, 40]
tuple
- 리스트와 같이 복수개의 값을 갖는 컬렉션 타입
- 생성된 후 변경이 불가능
a = [1, 2, 3]
b = (1, 2, 3)
print(type(a))
print(type(b))
<class 'list'>
<class 'tuple'>
a = (100, 200)
b = 100, 200
print(type(a))
print(type(b))
a, b, c, d = 100, 200, 300, 400
print(a, b, c, d)
<class 'tuple'>
<class 'tuple'>
100 200 300 400
a = 5
b = 4
print(a, b)
#temp = a
#a = b
#b = temp
a, b = b, a
print(a,b)
5 4
4 5