[2021-1] Python 100 문제풀이 Part.2 - 배열

Jayde·2021년 7월 8일
0

Python 100 문제풀이

목록 보기
1/5
post-thumbnail

여름방학을 맞아 코테 준비도 하고 파이썬도 오랜만에 복습하고자 코덕 파이썬 스터디에 참여하게 되었다! 근데 아직 벨로그 어떻게 쓰는건지 잘 모르겠다. 나중에 좀 더 알아보고 수정해야겠다...

[1] list

◾ list를 사용 X -> 요소를 저장할 변수를 일일이 생성해야 함.

//list를 사용하지 않았을 경우
person1_name = 'p1'
person1_age = '20'
person1_address = '서울'

person2_name = 'p2'
person2_age = '24'
person2_address = '부산'

//list를 사용할 경우
person_list = [['p1', 20, '서울'], ['p2', 24, '부산']]

이처럼 list를 사용하는 편이 훨씬 간단함.

◾ 빈 list 생성

  1. list = [ ]
  2. list = list( )

◾ list 특징

  • 주요 7개 타입을 모두 쓸 수 있음
    (주요 7개 타입 = 정수, 실수, 문자, list, tuple, set, dict)

  • list = list(1, 2)
    print(list)
    -> [1, 2]

◾ index

  • index는 0부터 붙여짐

  • index를 이용한 참조 방법 -> list[n]

  • set은 index로 접근 불가

  • list 안의 list/tuple 참조 방법 -> list[n][m]
    (여기서 n은 제일 바깥의 list 참조, m은 n의 요소 중 하나인 list 참조)

  • 요소의 index 검색 -> list_index = list.index(n)

  • reverse-index

    • list = [ 1, 2, 3, 4, 5 ]일 때,
      list[4] = list[-1], list[3] = list[-2]임

    • 이를 이용해 맨 마지막 요소에 쉽게 접근 가능

◾ 정렬

  • sort( )

    • 원본 list 자체를 정렬함
    • list.sort( ) -> 오름차순으로 정렬
    • list.sort( reverse = True ) -> 내림차순 정렬
  • sorted( )

    • list 사본을 만들고 정렬

◾ 추가, 수정, 삭제

  • 추가
    list.append(요소)

  • 수정
    list[n] = 요소

  • 삭제
    del list[n]

◾ 병합

  1. 서로 다른 두 list 병합
    a = [ 1, 2, 3 ], b = [ 4, 5, 6 ]
    c = a + b
    c = [ 1, 2, 3, 4, 5, 6 ]

  2. 한 list를 여러 번
    a = [ 1, 2, 3 ]
    b = a*3
    b = [ 1, 2, 3, 1, 2, 3, 1, 2, 3 ]

◾ 중복 제거

list = [ 1, 2, 3, 3 ] -> set(list) -> list = [ 1, 2, 3 ]

이때 순서는 계속 뒤죽박죽 섞임

◾ Comprehension(=함축, 포괄)

  • list comprehension -> list를 보다 더 쉽게 만드는 방법

    // [1] 1부터 10까지 list에 넣기
    list = [1]
    list = [1, 2] //10까지 반복
    
    // [2] 반복문을 통해 자동으로 list 생성
    list = [ ]
    for i in range(1, 11):
    	b.append(i)
    
    // [3] 더 함축
    list = [i for i in range(1, 11)]   // i가 append 역할
    
    // [4] 대괄호 사용 X
    list = list(i for i in range(1, 11))
    
    // [5] 조건이 있는 경우
    list = [i for i in range(1, 11) if i != 5]
    
    // [6] 중간에 다른 함수 사용
    list = [my_func(abs(i)) for i in [1, 2, 3, 4, 5]]

◾ list와 for 반복문

  • for 반복문으로 list 요소 값 출력
    for i in range(len(list)):
    	print(list[i])
  • 중첩 for 반복문
    // [1] 같은 요소가 반복
    list = [ i for i in range(3) for j in range(3)]
    // 출력: list = [0, 0, 0, 1, 1, 1, 2, 2, 2]
    
    // [2] 튜플 형식
    list = [(i, j) for i in range(3) for j in range(3)]
    // 출력: list = [(0,0), (0,1), ..., (2, 1), (2, 2)]

    왜 저렇게 되는지 이해 못함,,

[2] dict

◾ dict 특징

  • 요소 형식 - key : value

  • key - index 역할 (dict에는 index가 없음), 중복 불가

  • value - 중복 가능, 배열 객체도 value가 될 수 있음

  • 빈 dict 생성

    1. dict = { }
    2. list = dict( )
  • 출력

    1. key만
      print(dict.keys( ))
    2. value만
      print(dict.values( ))
    3. 모두
      print(dict_items( ))

◾ 삽입, 수정, 삭제

  • 삽입
    dict['new key'] = value
  • 수정
    dict['기존 키'] = new value
  • 삭제
    del dict[key]

f문자열 포매팅
1. %d, %s ...
2. '{}'.format()

a = 1
b = 2
c = '{} * {} = {}'.format(a, b, a*b)
  1. '{변수명}'.format(변수명 = 값)
a = 1
b = 2
c = '{x} * {y} = {z}'.format(x = a, y = b, z = a*b)
  1. 변수 = f'{변수}'
a = 1
b = 2
c = f'{a} * {b} = {a*b}'

4번을 많이 사용하는 듯!

profile
가장 높이 빛난 별 잡아보일게

0개의 댓글