반응형
함수와 메소드
- 함수
- 코드의 반복을 줄이거나 어떠한 기능을 하기 위해 특정 코드를 모아둔것
f(x)=2x
- 코드의 반복을 줄이거나 어떠한 기능을 하기 위해 특정 코드를 모아둔것
- 메소드
- 객체(값)에 소속되어 있는 함수
s = "ABCD"
len(s) # 시퀀스 자료형의 길이를 반환하는 함수
4
s.lower() # 문자열 객체의 lower 메소드(모든 대문자를 소문자로 변경)
컬렉션 자료형(Collection data type)
- 어려가지 요소를 하나로 묶어서 담을 수 있는 데이터 타입
- 문법적인 요소들 빼고 다 담은 수 있다.
- 객체 , 변수 , 함수 , 클래스....등 담을 수 있다.
- list, set, dict , tuple
자료형의 특징
- Sequence 자료형
- 열거 되어있다. 연속 되어있다.
- 순서가 있다. 순번(index)도 있다.
- mutable 자료형
- 수정 가능한 객체(값)
- 컬렉션 자료형: list , set , dict
- immutable 자료형
- 수정 불가능한 객체
- int, float, str, bool, tuple(컬렉션 타입)
list
- Sequence 자료형
- mutable 자료형
- 변경 가능
- 중복 데이터 저장이 가능
- [] 를 이용해서 만들 수 있다.
lst = []
lst
[]
lst = [1,2,3,3,"four" ,None , 7.0 ,True]
lst
[1, 2, 3, 3, 'four', None, 7.0, True]
type(lst)
list
len(lst)
8
lst = [1,2,3,[1,2]]
len(lst) # 리스트에 리스트를 넣으면 하나의 요소로 취급된다.
4
lst = [11,200,7,9,10]
sorted(lst) # 시퀀스형 자료형을 오름차순으로 정렬한 값을 반환하는 함수
[7, 9, 10, 11, 200]
max(lst) # 시퀀스 자료형의 최대값을 뽑는 함수
200
min(lst) # 시퀀스 자료형의 최소값을 뽑는 함수
7
sum(lst)# 시퀀스 자료형의 모든 요소들의 값을 합하는 함수
237
sum(lst) / len(lst) # 평균
47.4
시퀀스 다루기
- Sequence는 순번이 있다.
- 순번을 index 라고 한다.
- 파이썬의 인덱스는 두종류가 있다.
- 양수 인덱스
- 0 부터 시작한다.
- 왼쪽에서 오른쪽으로 1씩 증가
- 음수 인덱스
- -1 부터 시작한다.
- 오른쪽에서 왼쪽으로 1씩 감소
- 양수 인덱스
- 인덱스는 무조건 정수!!
lst = [1,2,3,3,"four" ,None , 7.0 ,True]
lst
[1, 2, 3, 3, 'four', None, 7.0, True]
lst[0]
1
lst[4]
lst[-2]
7.0
lst[-1]
True
슬라이싱(Slicing)
- 인덱스를 사용해서 시퀀스를 잘라낸다.
- 시퀀스에서 특정 범위를 가리킨다.
- [start:end:step]
- start ~ end-1 부분을 step만큼 건너 뛰면서 잘라낸다.
lst = ["a","b","c","d","e","f","g"]
lst
['a', 'b', 'c', 'd', 'e', 'f', 'g']
lst[0:3]
['a', 'b', 'c']
lst[2:4]
['c', 'd']
lst[-3:-1]
['e', 'f']
- start, end , step 생략이 가능하다.
- start를 생략하면 자동으로 0 들어간다.
- end를 생략하면 자동으로 시퀀스의 길이(len)가 들어간다.
lst[:] # lst[0:len(lst)] 와 같음.
['a', 'b', 'c', 'd', 'e', 'f', 'g']
lst[] # 대괄호 안에 아무값도 넣지 않으면 문법에러
lst[:]
[10, 20, 30, 40, 50, 60, 70]
lst[3:]
[40, 50, 60, 70]
lst[:5]
[10, 20, 30, 40, 50]
lst[-5:]
[30, 40, 50, 60, 70]
lst[:-1]
[10, 20, 30, 40, 50, 60]
- step
- 지정한 범위에서 step 만큼 건너뛰면서 슬라이싱
- step을 생략하면 기본적으로 1이 주어진다.
lst[::]
[10, 20, 30, 40, 50, 60, 70]
lst[0:len(lst):1]
[10, 20, 30, 40, 50, 60, 70]
lst[::2]
[10, 30, 50, 70]
- step 부분을 양수, 음수를 이용해서 방향 설정 가능
- 양수: 정방향(왼쪽에서 오른쪽)
- 음수: 역방향(오른쪽에서 왼쪽)
lst
[10, 20, 30, 40, 50, 60, 70]
lst[::-2]
[70, 50, 30, 10]
lst[::-1]
[70, 60, 50, 40, 30, 20, 10]
lst = [10,20,30,40,50,60,70]
lst
[10, 20, 30, 40, 50, 60, 70]
lst[3:4:1]
[40]
lst[-1:-5:-1]
[70, 60, 50, 40]
lst
[10, 20, 30, 40, 50, 60, 70]
lst[-2:-6:-1]
[60, 50, 40, 30]
lst[5:1:-1]
[60, 50, 40, 30]
num_list = [2,3,4,5,6,7,8,9,10,11,12,13,14,15]
num_list
[2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
10보다 작은 3의 배수만 오름차순으로 슬라이싱 하시오
num_list[1:-6:3]
[3, 6, 9]
리스트는 변경가능하다.
lst = [1,2,3,4,5,6,7,8,9,10]
lst[1] = 10000
lst
[1, 10000, 3, 4, 5, 6, 7, 8, 9, 10]
lst[:1]
[1]
lst[:1] = 3 # 슬라이싱 해서 리스트가 반환 됐기 때문에 단일값 대입시 에러가 난다.
- 길이가 달라도 리스트에 리스트를 담는것은 가능하다.
lst[1:] = [3]
lst[1:] = [1001,1002,1003,1004]
lst
[1, 1001, 1002, 1003, 1004]
lst = [1,2,3,4,5,6,7,8,9,10]
lst
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
- step 를 2이상을 넣어 연속적인 공간이 아닌 리스트가 슬라이싱 되면 수정이 안된다.
lst[1::2] = [0]
list의 메소드
- append()
- 리스트의 제일 뒤에 값을 추가
lst = [1,2,3,4]
lst.append(0)
lst
[1, 2, 3, 4, 0]
sorted(lst) # sorted 함수는 리스트값을 정렬한 객체를 새로 메모리에 만들어 반환한다.
[0, 1, 2, 3, 4]
lst
[1, 2, 3, 4, 0]
lst.sort() # 리스트는 mutable 하기 때문에 sort 메소드를 이용하면 해당 리스트 객체가 정렬된다.
lst
[0, 1, 2, 3, 4]
- pop()
- 제일 뒤에 있는 데이터를 꺼내고 삭제
- 인덱스 값을 줄경우 해당 인덱스 값을 꺼내고 삭제
lst
[0, 1, 2, 3, 4]
print(lst.pop())
print(lst)
print(lst.pop())
print(lst)
4
[0, 1, 2, 3]
3
[0, 1, 2]
lst.pop(1)
lst
[0, 2]
- extend()
- 리스트와 리스트를 합친다.
lst = [1,2,3]
lst.extend([4,5,6])
lst
[1, 2, 3, 4, 5, 6]
lst = [1,2,3]
lst.append([4,5,6]) # append 는 하나에 요소로서 추가되기때문에 리스트를 넣으면 하나의 요소로 취급된다.
lst
[1, 2, 3, [4, 5, 6]]
- insert()
- 인덱스 위치에 값을 추가한다.
from sys import last_value
lst = [1,2,3]
lst.insert(0,9)
lst
[9, 1, 2, 3]
- remove()
- 리스트에서 값을 찾아 삭제한다.
lst = [10,20,30]
lst.remove(20)
lst
[10, 30]
- del
- del 라는 키워드를 사용하면 된다.
- 리스트에 경우 특정 인덱스 값을 삭제
lst = [10,20,30]
del lst[1]
lst
[10, 30]
- 변수에 경우 변수를 삭제
- 변수가 참조하고 있는 객체도 같이 메모리에서 삭제된다.
a = 1004
del a
a # 변수를 선언 했지면 del 키워드로 변수를 삭제 했기 때문에 에러 발생
1.다음의 리스트에서 앞에서 부터 하나씩 꺼낸 값을 출력하면서 모든 값을 꺼내시오. (pop 메소드)
lst = [1, 2 ,3, 4 ]
print(lst.pop(0))
print(lst.pop(0))
print(lst.pop(0))
print(lst.pop(0))
1
2
3
4
2.다음의 리스트에서 2의 배수만 내림차순으로 슬라이싱 하시오
num_list = [2, 3, 4, 5, 6, 7, 8, 9, 10,11,12,13,14,15]
num_list[-2::-2]
[14, 12, 10, 8, 6, 4, 2]
3.다음의 리스트에서 sort 메소드와 인덱싱만을 이용하여 최대값과 최소값을 구하시오.
num_list = [ 6, 7, 8, 9,11,12,13,14,15, 2, 3, 4, 5]
num_list
[6, 7, 8, 9, 11, 12, 13, 14, 15, 2, 3, 4, 5]
num_list.sort()
num_list
[2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15]
num_list[0] , num_list[-1]
(2, 15)
w1, w2 = input().split("")
s = w1 + w2
print(s)
hello,,python
hellopython
반응형
'python' 카테고리의 다른 글
[python]파이썬 - 클래스class (0) | 2023.01.24 |
---|---|
[python]파이썬 - 함수function2 lambda (0) | 2023.01.24 |
[python]파이썬 - 함수function (0) | 2023.01.24 |
[python]파이썬 - 제어문 (0) | 2023.01.24 |
[python]파이썬 - 값(객체), 변수, 키워드(Keyword) (0) | 2023.01.24 |
댓글