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