파이썬 문법의 모든 내용을 담은 게시글이 아닌 헷갈리거나 자주 까먹는 부분의 문법들만 다룬 내용입니다.
리스트와 연산
- 대괄호 [] 사용
- 순서가 있고, 인덱스를 이용하여 데이터에 접근이 가능
- 인덱스는 0번부터 시작, 음수로는 마지막 인덱스가 -1
- 리스트는 수정 가능하다. (mmutable)
- 리스트 슬라이싱 (slicing)
A= [15,27,32,20,17,13,10,22]
A[:] #리스트 전체 다
A{;;} #리스트 전체 다
A[:5] #앞에서부터 4번째까지
A[0:5] #0번째부터 4번째까지
A[2:-1] #2번째 부터 -2번째까지
A[-3:-1] #-3번째부터 -2번째까지
A[2:6:1] #2번째부터 5번째까지 1칸식 띄어서
A[::2] #전체 다 2칸씩 띄어서
- 리스트 연결(+), 반복(*)
L= [1,3,5,7,9]
M =[2,4,6,8]
L+M
>> [1,3,5,7,9,2,4,6,8] #리스트를 합침
print(L,M)
>> [1,3,5,7,9] [2,4,6,8] #리스트 따로 따로 출력
K= L+ M
print(k)
{1,3,5,7,9,2,4,6,8] #리스트를 합친 K를 출력
L*3
>>[1,3,5,7,9,1,3,5,7,9,1,3,5,7,9] #리스트 3회 반복
-리스트 메소드 : 데이터 객체에 대해서 어떤 일을 처리할 수 있도록 하는 코드
- 리스트 복사하기 ('=' 이용하기)
L= [1,3,5,7,9]
id(L)
>> 53794056 #L 리스트의 주소 값
M = L #이때 M은 L리스트의 값을 가지고 새로운 주소에 저장하는 것이 아니라 L을 같이 공유하는 것, L을 가르킨다.
M[2]= 100 #따라서 M 2번째 자리에 100을 바꾸라는 것은 L의 2번째자리가 바뀌는 것이다.
print(L)
>> [1,3,100,7,9] #L의 2번째자리가 100으로 바뀜
id(M)
>> 53794056 #L의 주소 값과 동일
- 리스트 복사하기 (copy())
L= [1,3,5,7,9]
N= L.copy() #여기서 N은 '='을 이용할 떄와 다르게 새로운 주소값에 리스트 L의 값들이 저장됨
N[2]= 100
print(L)
>> [1,3,5,7,9] #L의 값은 변하지 않음
print(N)
>> [1,3,100,7,9] #N의 값만 바뀜
- 리스트 정렬하기 (sort())
- sort는 기본적으로 오름차순으로 정렬
- 내림차순으로 정렬하기 위해서는 L.sort(reverse=True) 식으로 사용 (L은 리스트를 지칭하는 변수)
튜플과 연산
- 리스트처럼 여러 데이터를 저장할 수 있는 자료형러
- () 사용
- 리스트와의 차이점: immutable, 수정 불가능
사용방법은 리스트와 동일
- 튜플 메소드 (리스트 안에 내용을 바꾸는 메소드들은 튜플에서 사용 불가, 수정 불가능하기 때문)
#원소가 하나인 튜플일 때
T= (1, ) #콤마가 필요
S= (1) #콤마를 하지 않으면 int형으로 받아들임
A= 1,2,3 #괄호를 안해도 튜플로 인식
#튜플은 여러 변수에 값을 동시에 할당 가능하다.
a,b,c= 1,2,3
>> a=1
>> b=2
>> c=3
#튜플을 이용한 swap
x= 10; y=20
x,y= y,x
print(x,y)
>> 20 10
- 값을 변경하지 않을 경우 리스트보단 튜플을 사용하는게 좋다.
집합(set) - {}
- 중복된 데이터를 가질 수 없고, 데이터에 순서가 없다. 집합을 출력할 때 순서가 뒤죽박죽 나올 수 있음
- mmutable한 자료형이다.
- [], +, * 기호들을 사용할 수 없다.
- in, not in , len() 은 사용할 수 있다.
s = {1,2,5} #집합 생성
S = set() #빈 집합을 생성할 때는 set()으로 사용한다. {}을 사용할 경우 집합이 아니라 빈 사전으로 인식
#items
count = {'toefl':40, 'toeic':50 , 'sat':25}
A= count.items()
print(A)
>> dict_items([('sat',25), ('toefl',40),('toeic',50)])
#파이썬에서 items()를 사용하여 키와 값을 반환해줄 때 dict_items()로 반환해준다.
#따라서 items의 결과를 가지고 무엇인가 적용하겠다하면
B= list(count.items()) #이 형태로 사용한다.
print(B)
>> [('sat',25), ('toefl',40),('toeic',50)]
#keys와 values도 dict_keys()~, dict_values()~로 반환해주므로 list를 사용하여 적용
for 반복문
- range() 함수
range(b) : 0부터 b-1까지의 수를 반환
range(a,b) : a부터 b-1까지의 수를 반환
range(a,b,n) : a부터 b-1까지의 n간격의 수를 반환
A = range(5)
B= list(range(5))
print(B)
>> [0,1,2,3,4]
list(range(10,1,-2))
>>[10,8,6,4,2]
- for 구문을 이용한 반복문
for 구문에도 break와 continue 사용 가능
for x in [1,2,3,4,5]:
for y in [2,4,6,8,10]:
print(x*y, end =' ') #end=' '는 값 사이에 공백을 생성한다는 의미
print()
>> 2,4,6,8,10
4,8,12,16,20
6,12,18,24,30
...
- 리스트 안에 반복문 사용하기
A= [x**2 for x in range(10)] #변수 x를 0부터 9까지 돌아가면서 x제곱해라
print(A)
[0,1,4,9,16,25,...}
B= [2**i for i in range(11)] #0부터 10까지 돌아가면서 2의 i승해라
print(B)
[1,2,4,8,16,32,64,.]