1. 데이터 구조의 활용
데이터 구조.메서드() 형태로 활용한다. 쉽게 생각하면 주어.동사()
list.append(10)
string.split()
# 내가 지금까지 많~이 쓰고 있었던 method 함수들!
시퀀스형 자료구조
2. 문자열 (string)
변경할 수 없고(immutable), 순서가 있고(ordered), 순회 가능한(iterable)
을 사용하면 string 이 가지는 함수를 찾을 수 있다.
조회, 탐색
word = happy
#1 s.find(x) -> x의 위치를 반환, 없으면 -1을 반환. 오류가 나지 않음.
print(word.find('a')) # 1
#2 s.index(x) -> find와 유사하지만, 없으면 오류 발생
print(word.index('a')) #1
print(word.index('z')) #error검증, 판별
# 1 문자열의 접두/ 접미사 검색 할 때
.startswith("")
# 2 문자열 슬라이싱 대신 사용한다.
.endswith("")
# 3 숫자 판별 메소드
.isnumeric()
.isdigit()
.isdecimal()
# 아래로 갈수록 보수적이다. 셋다 음수나 float 형은 False로 반환된다.#3 s.isalpha() -> 알파벳 문자여부, .isspace() 공백인가
print(word.isalpha()) # True/False로 답이 나온다.
print('ㄱㄴㄷ'.isaplha()) # 한글도 가능하다.
#4 s.istitle()
# title은 첫번째만 대문자. 나머지는 소문자인 경우.
print('I am harim'.istitle()) # False
print('I Am Harim'.istitle()) # True
문자열 변경
.replace(old, new, [,count])
.strip() #lstrip, lstrip
# ()안이 빈칸이면 공백을 없애고, 문자면 문자를 삭제한다. (꼭 문자 그대로가 아니더라도, 조합도!)
# strip을 사용할 때의 주의 점은, 띄어쓰기가 안되어있는 경우, 그 앞에 단어의 다른 조합이 있을 때
# 단어 뿐만아니라 철자로 만들 수 있는 모든 조합을 삭제한다.
# 그렇기 때문에 공백에 대한 주의가 필요하다.
.split(" ")
# seperator.join(iterable)
word = "배고파"
words = ["안녕", "hello"]
"!".join(word) # '배!고!파'
",".join(words) # '안녕,hello'
# 단어나 list는 모두 순회가능하기 때문에 .join method를 사용할 수 있다.# .capitalize() : 공백이나 ' 이후에 대문자
# I Am Human. I'M Human.
# .title() : 첫 글자를 제외한 나머지는 소문자
# I am human. i'm human.
# 대소문자를 변경하고 싶다면, .swapcase()
⚠️ 주의사항
a.method() 함수를 이용하여도, a가 바뀌는 것이 아니라. a의 복사본이 바뀌는 것이다. 그렇기 때문에 a = a.method() 라고 사용하여야 한다.
또한 위의 과정 없이 그냥 print(a.method()) 라고 쓰면 None 이 반환되니, 조심하자.
3. 리스트(list)
변경할 수 있고(mutable), 순서가 있고(ordered), 순회 가능한(iterable)
dir(list) 를 검색하면 list에서 사용가능한 함수들이 나온다.
값의 추가 및 삭제
# 문자열(string)과 다르게, list의 id 는 동일하다.
# 즉, string은 불변(immutable)이고, list는 가변(mutable) 이다.
list.append(x)
list.insert(i,x) # 특정한 위치에 새로운 값을 넣고 싶으면, index(i) 번째에 x가 들어간다.
# 만약 i의 값이 list의 길이보다 길다면, 맨 마지막에 들어간다.
# extend 안에는 iteralbe 한 요소 어느것이나 들어갈 수 있다.
list.extend(['coffee']) # 리스트와 또 다른 리스트를 합치는 것이다.
list.extend('cup') # 이렇게 작성하면, ['c', 'u', 'p'] 이런식으로 따로따로 들어간다.
# append vs extend
list.append(['coffee']) # 결과는 [['coffee']]
list.extend(['coffee']) # 결과는 [, 'coffee']
list.extend('coffee') # 결과는 [, 'c', 'o', 'f', 'f', 'e', 'e']
# a.insert(0, x)는 리스트의 처음에 x를 삽입하고,
# a.insert(len(a), x) 는 a.append(x) 와 같습니다.
#.remove() : 첫번째로 () 인 값을 삭제한다. 즉, 앞에서부터 삭제한다.
list.remove('hi') # 없는 요소를 삭제할 경우, 에러
# list.pop() : pop()이 비어있으면 맨 마지막 값부터 빼낸다.
list.pop('hi') #리스트에서 'hi' 라는 값을 뽑아낸다.
varialbe = list.pop('hi') # 이런식으로 쓸 수도 있음.
list.clear() # 리스트를 싹 배운다!
탐색 및 정렬
# 리스트안에 ()의 index를 반환한다. ()가 없으면 에러
a.index()
# 리스트 안에 있는 요소의 개수를 세는 함수, 없으면 0을 반환
list.count()
# 원하는 값을 모두 삭제하려면 다음과 같이 할 수 있습니다.
a = [1, 2, 1, 3, 4]
target_value = 1
for i in range(a.count(target_value)):
a.remove(target_value)
print(a)
list.sort() # 원본 리스트를 정렬한다.
list.reverse() # 원본 리스트를 역순으로 정렬한다.(정렬x)
list.sort(reverse=True)
numbers = [3, 2, 5, 7]
result = numbers.sort()
print(numbers, result) # -> 원본을 정렬하기 때문에, numbers는 있지만, result 는 none입니다.
numbers = [3, 2, 6, 8)
# result = numbers.sorted() 이거는 없는 함수입니다!! 없는 문법
result = sorted(numbers)
print(numbers, result) # 원본은 그대로 두고, 복사본을 정렬하기 때문에 원본, 정렬된 복사본 두개를 반환한다.
💡
sorted(numbers) vs numbers.sort() 의 비교
원본은 내버려두고, 복사본을 정렬한다 / 원본을 정렬한다!
list.reverse() # 순서를 반대로 뒤집는다.
# .sort() 와 마찬가지로 원본을 뒤집는다.
4. 튜플 (tuple)
변경할 수 없고(immutable), 순서가 있고(ordered), 순회 가능한(iterable)
튜플은 불변자료형이기 때문에, 값을 바꿀 수 없다!
내부 내용을 추가/ 변경하는 것 이외에 인덱스를 찾거나, 하는 것은 가능하다.
탐색 및 정렬
# 리스트안에 ()의 index를 반환한다. ()가 없으면 에러
a.index()
# 리스트 안에 있는 요소의 개수를 세는 함수, 없으면 0을 반환
list.count()
# 원하는 값을 모두 삭제하려면 다음과 같이 할 수 있습니다.
a = [1, 2, 1, 3, 4]
target_value = 1
for i in range(a.count(target_value)):
a.remove(target_value)
print(a)
5. 연산자
# 'in' 은 문자, list, tuple에서 모두 사용 가능하다.
# not in
print('a' in 'apple') # True
print('apple' in 'apple curry') # True
print('apple' in ['apple', 'banana', 'cherry']) # True
print('apple' in ('apple'. 'banana', 'cherry')) # True
# 연산자 '+'
print('apple' + 'curry') # applecurry
print(['apple', 'banana']+['cherry']) # []
print(('apple', 'banana')+('cherry')) # 에러. 튜플은 더하기 안됩니다용!
# 연산자 '*'
# '*'는 string, list, tuple에서 모두 사용 가능하다.
# 시퀀스를 반복한다.
Uploaded by N2T