[6-1. 리스트와 함수들]

1) 리스트와 함수들

- len함수는 리스트에 저장된 값의 개수를 변환함

 

- len(s) : 리스트 s의 길이(저장된 값의 수) 반환
- min(s) : 리스트 s에 저장된 값 중에서 가장 작은 값 반환
- max(s) : 리스트 s에 저장된 값 중에서 가장 큰 값 반환

 

- 가장 작은 값과 가장 큰 값 반환 가능

- 뿐만 아니라 제거할 수도 있음

 

- s.append(x) : 리스트 s의 끝에 x를 추가
- s.extend(t) : 리스트의 s의 끝에 리스트 t의 내용 전부를 추가
- s.clear() : 리스트 s의 내용물 전부 삭제
- s.insert(i,x) : s[i]x를 저장
- s.pop(i) : s[i]를 반환 및 삭제
- s.remove(x) : 리스트 s에서 제일 앞에 등장하는 x를 하나만 삭제
- s.count(x) : 리스트 s에 등장하는 x의 개수 반환
- s.index(x) : 리스트 s에 처음 등장하는 x의 인덱스 값 반환

- 하나만 추가할 땐 append, 두 개 이상을 추가할 땐 extend 사용

- 삽입과 삭제

 

- 빈 리스트 하나 만들고 거기에 1, 9 추가

 

- popremove의 차이점

- pop은 삭제할 때 위치를 지정하는 반면, remove는 삭제할 값을 명시함

- st.pop(0) : 인덱스 값 0의 위치에 저장된 데이터 삭제

- st.remove(5) : 리스트에서 5를 삭제

 

 <연습문제 06-1>

▶ 문제 1. 다음은 빈 리스트를 만들어서 그 안에 1, 2, 3을 넣었다가 넣은 순서대로 꺼내는 코드의 실행 흐름이다.  실행 흐름이 완성되도록 빈칸에 문장들을 채워넣자.


▶ 문제 2. 위의 문제 1에서는 리스트에 다음 순서대로 값을 저장하고 꺼냈다. 
 - 저장 순서 : 1, 2, 3
 - 꺼낸 순서 : 1, 2, 3

 이번에는 다음 순서대로 값을 저장하고 꺼내도록 코드를 작성해보자.
 - 저장 순서 : 1, 2, 3
 - 꺼낸 순서 : 3, 2, 1


▶ 문제 3. 앞서 본문에서 리스트에 저장된 내용 전부를 삭제하는 clear 함수를 소개하였다. 그런데, 이렇듯 리스트에 저장된 값을 싹 비우는 방법을 앞서 5장에서도 소개한 바 있다. 슬라이싱 연산을 이용하는 방법인데, 이 방법을  이용하는 형태로 위의 코드를 수정해보자. 


▶ 문제 4. 빈 리스트를 만들어서 그 안에 1부터 10까지 넣었다가, 다시 1부터 10까지 꺼내는(삭제하는) 코드를 만들어보자. 단 이번에는 넣고 꺼내야 할 값이 많으니 for 루프를 이용하는 형태로 코드를 작성해보자.


▶ 문제 5. 빈 리스트를 만들어서 그 안에 1부터 10까지 넣었다가, 다시 10부터 1까지 꺼내는(삭제하는) 코드를 만들어보자. 이번에도 문제 4와 마찬가지로 for 루프를 이용하자. 


▶ 문제 6. 다음은 하나의 리스트에 다른 리스트의 값 전부를 추가하는 코드이다. 
   
   >>> st = [1, 2]
   >>> st.extend([3, 4, 5])
   >>> st
   [1, 2, 3, 4, 5]

위의 예에서는 extend 함수를 사용했는데, 이를 슬라이싱 연산을 이용하는 형태로 수정해보자. 다음 리스트에는 세 번째 값이 없다. 

   st = [1, 2]

그러나 다른 리스트이 값 전부를 추가할 때에는 세 번째 값이 있다고 가정하고 슬라이싱 연산을 전환하면 된다. 즉 세 번째 값을 리스트 [3, 4, 5]의 내용으로 교체하는 슬라이싱 연산문을 작성하면 된다. 

 

[6-2. 두 가지 유형의 함수가 갖는 특징들]

 

1) 두 가지 유형의 함수가 갖는 특징들

- len(s) : 리스트 s의 길이(s에 저장된 값의 수) 반환

 

- min(s) : 리스트 s에 저장된 값 중에서 가장 작은 값 반환

 

- max(s) : 리스트 s에 저장된 값 중에서 가장 큰 값 반환

 

- 문자열의 길이는?

 

- 알파벳 순서 중 가장 앞에 있는 문자는?

 

- 알파벳 순서 중 가장 뒤에 있는 문자는?

 

 

[6-3. 문자열과 함수들]

1) 문자열과 함수들

- s.count(sub) : 문자열 ssub가 등장하는 횟수 반환
- s.lower( ) : 문자열 s의 내용을 전부 소문자로 바꾼 문자열 변환
- s.upper( ) : 문자열 s의 내용을 전부 대문자로 바꾼 문자열 변환
- s.lstrip( ) : 문자열 s의 앞에 위치한 공백을 모두 제거한 문자열 반환
- s.rstrip( ) : 문자열 s의 뒤에 위치한 공백을 모두 제거한 문자열 반환
- s.strip( ) : 문자열 s의 앞과 뒤에 위치한 공백을 모두 제거한 문자열 반환
- s.replace(old, new) : 문자열 soldnew로 교체한 문자열 반환
- s.split( ) : 문자열 s를 공백을 기준으로 나눠서 리스트에 담아서 반환

 

 

- o가 몇 번 등장하는지?

- n이 몇 번 등장하는지?

 

- lcp : 모든 문자를 소문자로 바꿔서 변환하라

- ucp : 모든 문자를 대문자로 바꿔서 변환

- org : 원본은 그대로 존재

 

 <연습문제 06-2>

▶ 문제 1. 문자열 "The Espresso Spirit"을 다음과 같이 선언하자.
   >>> str = "The Espresso Spirit"
그리고 한 번은 모두 대문자로 바꿔서 출력하고, 또 한 번은 모두 소문자로 바꿔서 출력해보자. 그리고 마지막에 원본 그대로 출력을 한 번 더 하자. 


▶ 문제 2. 우리나라의 주민 번호는 다음과 같은 구조이다. 
 '070609-2011xxx'
 '090716-1012xxx'
이 중에서 앞의 여섯 자리는 생년월일 정보이다. 따라서 문자열로 표현된 위의 주민등록번호에서 생년 월일 정보만 꺼내서 출력하고자 하니, 이러한 기능을 제공하는 함수를 만들어보자. 예를 들어서 함수의 이름이 birth_only라 한다. 

 

 

+ Recent posts