String

  • "abc" + "de" == "abcde"
  • "abc" * 2 == "abcabc"
  • a[0:4] == a[0]~a[3]
  • a[:8] == a[0]~a[7]
  • a[2:] == a[2]~
  • X.count('b') : X에서 'b'의 개수
  • X.find('b') : X에서 처음 나온 'b'의 index
  • ",".join('abc') =='a,b,c' : " "안의 값을 사이에 넣어줌 -> 리스트를 문자열로 바꿀 때 활용
  • X.replace("abc',"ggg") : X 문자열 안에 'abc'를 'ggg'로 교체
  • X.split("") : ""기준으로 나눔 -> X.split() 시 공백 기준으로 나눠줌

List

  • X.append(4) : 마지막에 4 추가
  • X.sort(), X.reverse() : 정렬, 역순정렬
  • X.index(1) : 1이 있는 index 반환
  • X.insert(3,5) : index=3 에 5 대입
  • X.remove(3) : 첫번째로 나오는 3 삭제
  • X.pop() : 맨 마지막 꺼내기 -> append, pop 으로 스택 구현 가능

Dictionary

  • X.keys() : X의 key 객체 반환 -> list(X.keys()) => 리스트 형태
  • X.values() : X의 values 객체 반환 -> list(X.values()) =>리스트 형태
  • X['key'] vs X.get('key') : 존재하지 않는 키 값일 경우 전자는 오류발생, 후자는 None 반환
  • X.get('key','default') : key값이 없을 경우 'default' 반환

 

.format

  • "{0}, {1}".format(a,b) : 0, 1자리에 각각 a, b 대입
  • "{abc},{de}".format(abc=10,de=5} : abc와 de자리에 각각 10,5 대입
  • {.2f}.format(a) : a를 소수점 두번째까지까지 출력

Boolean

  • 0이 아닌 숫자 == True  vs 0, None == False
  • [] 빈 리스트 == False vs [1,2,3] 값이 있는 리스트 == True
  • "" 빈 문자열 == False vs "abc" 문자 있는 문자열 == True
a= [1,2,3]

while a: #a 배열에 값이 존재하는 동안
   a.pop()

# 결과 : 3,2,1
  • A is B : A 와 B가 같은 객체(같은 주소)이면 True
a = [1,2,3]
b = [1,2,3]

a is b == False 
#a와 b은 각각 따로 만들어진 다른 객체(다른 주소)기 때문

리스트의 복사

b = a의 문제점

a=[1,2,3]
b=[]

b = a

a[1] = 6

# a = [1,6,3]
# b = [1,6,3]

#a와 b가 동일한 리스트 객체를 가르키기 때문 (같은 주소)

a[:] 의 사용

a=[1,2,3]
b=[]

b = a[:]

a[1] = 6

# a = [1,6,3]
# b = [1,2,3]

copy(a)의 사용

a=[1,2,3]
b=[]

b = copy(a)

a[1] = 6

# a = [1,6,3]
# b = [1,2,3]

a, b = b, a : Swap(a,b)

if 문

  • not A : A가 거짓이면 참
  • x in 리스트, x in 튜플, x in 문자열 : 리스트/튜플/문자열 안에 x가 있으면 참
if 1 in [1,2,3]:
    return True
    
# True

not in 도 가능하다.

if 1 not in [3,4,5]
    return True
    
#True

pass : if문 실행 시 아무것도 동작하기 싫을 때

if 1 in [1,2,3]:
    pass
else:
    print("1이 없다")
    
# pass문 수행되어 결괏값 x

for 문

  • continue : 수행시 for문의 처음으로 돌아간다.
  • 리스트 내포(List comprehension)
a = [1,2,3]
result = []

for num in a:
    result.append(num)
# 위와 아래는 같다    
a = [num for num in a]


r = [x*y for x in range(3,10) for y in range(1,10)]
#다중 for문도 가능하다
#3,6,9, ......

Function

  • 함수에서 Return 값이 없을 경우 None을 돌려준다.
  • args : 정해지지 않은 개수의 (일반)입력값을 받는 매개변수 (튜플)
def func(*args):
    result = 0
    for i in args:
        result += i
    return result

func(1,2,3)
# result = 6
func(1,2,3,4,5)
# result = 15
  • **kwargs : 정해지지 않은 개수의 (문자열)입력값을 받는 매개변수 (딕셔너리)
def func(**kwargs):
    print(kwargs)
    
func(a=1)
#{'a':1}

func(name='sjy',age=27)
#{'age':27, 'name' : 'sjy'}
  • return 값 여러개면 하나의 튜플로 모든 값을 갖는다.
def func():
    a=1
    b=2
    c=3
    
    return a*b, b*c, c*a

x = func()
# a = (2,6,3)


j,k,l = func()
#j=2, k=6, l=3

lambda

lambda 매개변수1, 매개변수2, .... : 매개변수를 사용한 표현식

* 함수를 한 줄로 간결하게 만들 때 사용한다.

a = lambda x, y : x*y

result = a(3,4)
#result = 12

 

+ Recent posts