Aiffel: Day 4

Hyunji Kim·2021년 12월 30일
0

Aiffel

목록 보기
3/10

오늘의 주제
Aiffel LMS : Fundamental 8. 파이썬 잘하는 척 해보자
파이썬 코딩 도장 : Unit 22-23, 25-26

Aiffel LMS

Fundamental 8. 파이썬 잘하는 척 해보자


파이썬 코딩 도장

Unit 22. 리스트와 튜플 응용하기

  • 리스트에서 요소를 추가하기
append(): 요소 하나를 추가
extend(): 리스트를 연결하여 확장
insert(): 특정 인덱스에 요소 추가
insert(0, 요소): 리스트의 맨 처음에 요소를 추가
insert(len(리스트), 요소): 리스트 끝에 요소를 추가
  • 리스트에서 요소를 삭제하기
pop(): 마지막 요소 또는 특정 인덱스의 요소를 삭제
remove(): 특정 값을 찾아서 삭제
clear(): 리스트의 모든 요소를 삭제
  • 기타
index(): 특정 값의 인덱스 추출
count(): 특정 값의 갯수 추출
reverse(): 리스트의 순서 뒤집기
sort(): 리스트의 요소을 작은 순서대로 정렬(오름차순)
copy(): 리스트를 복사
min(), max(): 리스트의 최소,최대값 추출
sum(): 리스트 내 값의 합 추출
  • 리스트 표현식 examples
>>> a = [i for i in range(10)]        # 0부터 9까지 숫자를 생성하여 리스트 생성
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> c = [i + 5 for i in range(10)]    # 0부터 9까지 숫자를 생성하면서 값에 5를 더하여 리스트 생성
>>> c
[5, 6, 7, 8, 9, 10, 11, 12, 13, 14]

#if 조건문 사용하기
>>> a = [i for i in range(10) if i % 2 == 0]    # 0~9 숫자 중 2의 배수인 숫자(짝수)로 리스트 생성
>>> a
[0, 2, 4, 6, 8]

#map 사용하기 :map(함수,리스트)
>>> a = [1.2, 2.5, 3.7, 4.6]
>>> a = list(map(int, a))
>>> a
[1, 2, 3, 4]
  • 실습문제!
a, b = map(int,input().split())
answer = list(2**i for i in range(a,b+1)) 
answer.pop(1), answer.pop(-2)
print(answer)

Unit 23. 2차원 리스트 사용하기

  • 참고사항
    2차원 이상의 다차원 리스트는 리스트를 완전히 복사하려면 copy 메서드 대신 copy 모듈의 deepcopy 함수를 사용해야 함
>>> a = [[10, 20], [30, 40]]
>>> import copy             # copy 모듈을 가져옴
>>> b = copy.deepcopy(a)    # copy.deepcopy 함수를 사용하여 깊은 복사
>>> b[0][0] = 500
>>> a
[[10, 20], [30, 40]]
>>> b
[[500, 20], [30, 40]]
  • 심사문제..지뢰찾기인데 너무 어려운 관계롷ㅎㅎ 일단 킵..

Unit 25. 딕셔너리 응용하기 오늘 진도가 밀려 내일 하기로 하였음

Unit 26. 세트 사용하기

  • 세트는 { }(중괄호) 안에 값을 저장하며 각 값은 ,(콤마)로 구분 ex: 세트 = {값1, 값2, 값3}
  • 세트는 요소의 순서가 정해져 있지 않음(unordered). 따라서 세트를 출력해보면 매번 요소의 순서가 다르게 나옴.
  • 세트에 들어가는 요소는 중복될 수 없음. (세트에 'orange'를 두 개 넣어도 실제로는 한 개만 들어감)
  • 세트는 리스트, 튜플, 딕셔너리와는 달리 [ ](대괄호)로 특정 요소만 출력할 수는 없음
>>> a = set('apple')    # 유일한 문자만 세트로 만듦
>>> a
{'e', 'l', 'a', 'p'}
  • 세트의 집합 연산
#합집합
세트1 | 세트2
set.union(세트1, 세트2)

#교집합
세트1 & 세트2
set.intersection(세트1, 세트2)

#차집합
세트1 - 세트2
set.difference(세트1, 세트2)

#대칭차집합
세트1 ^ 세트2
set.symmetric_difference(세트1, 세트2)
  • 집합 연산 후 할당 연산자 사용하기
#|=은 현재 세트에 다른 세트를 더함
세트1 |= 세트2
세트1.update(세트2)

#&=은 현재 세트와 다른 세트 중에서 겹치는 요소만 현재 세트에 저장
세트1 &= 세트2
세트1.intersection_update(세트2)

#-=은 현재 세트에서 다른 세트를 뺌
세트1 -= 세트2
세트1.difference_update(세트2)

#^=은 현재 세트와 다른 세트 중에서 겹치지 않는 요소만 현재 세트에 저장
세트1 ^= 세트2
세트1.symmetric_difference_update(세트2)
  • 부분집합, 상위집합 등 관계 표현
현재세트 <= 다른세트
현재세트.issubset(다른세트)

현재세트 < 다른세트

현재세트 >= 다른세트
현재세트.issuperset(다른세트)

현재세트 > 다른세트

현재세트.isdisjoint(다른세트)
  • 세트 조작하기
add()
remove()    #세트에서 특정 요소를 삭제하고 요소가 없으면 에러발생
discard()   #세트에서 특정 요소를 삭제하고 요소가 없으면 그냥 넘어감
pop()       #임의의 요소를 삭제하고 그 후 결과 반환
clear()
len()
  • 세트 표현식에 if조건문 사용하기
>>> a = {i for i in 'pineapple' if i not in 'apl'}
>>> a
{'e', 'i', 'n'}
  • 심사문제
x, y = map(int,input().split())

a = set(i for i in range(1,x+1) if x%i == 0)
b = set(i for i in range(1,y+1) if y%i == 0)
        
divisor = a & b
 
result = 0
if type(divisor) == set:
    result = sum(divisor)
 
print(result)

0개의 댓글

관련 채용 정보

Powered by GraphCDN, the GraphQL CDN