ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 30 - 중첩 리스트와 전개 연산자
    study with Q - 파이썬 2024. 3. 31. 11:14

    #n-차원 리스트

    • 1차원 리스트
      : [0, 1, 2] 와 같이 한 겹으로 감싸진 리스트
    • 2차원 리스트
      : [[0, 1, 2] [3, 4, 5]]와 같이 두 겹으로 감싸진 리스트
    • ...
    • n차원 리스트
      : n겹으로 감싸진 리스트

    #그래서

    a = [[0, 1, 2], [3, 4, 5], [6, 7]]
    
    for i in a:
      print(i)
     >>> [0, 1, 2]
    [3, 4, 5]
    [6, 7]
    
    for i in a:
      for j in i:
        print(j)
    >>> 0
    1
    2
    3
    4
    5
    6
    7

     

    순서에 따라 바뀌는거 주의

    더보기
    a = [[0, 1, 2], [3, 4, 5], [6, 7]]
    
    for i in a:
      print(i)
      for j in i:
        print(j)
        
    >>> [0, 1, 2]
    0
    1
    2
    [3, 4, 5]
    3
    4
    5
    [6, 7]
    6
    7

    #전개 연산자

    : 리스트 앞에 *기호를 사용하여 작성
    : 리스트 요소를 전개하여 입력한 것과 같은 효과

    : (1) 리스트 내부에 사용
      (2) 함수의 매개 변수 위치에 사용

     

    (1) 리스트 내부에서의 사용

    l = ["쿵", "짝", "짝"]
    r = [*l, *l]
    print(r)
    >>> ['쿵', '짝', '짝', '쿵', '짝', '짝']

     

    저딴걸 어따써라고 생각할 수 있지만 

    * 파괴적 함수인 append, extend와의 비교

    l = ["쿵", "짝", "짝"]
    le = ["쿵", "짝", "짝"]
    l.extend(le)
    print(l)

     → 파괴적 함수에서는 !l*이 파괴되어 기존의  !l*의 형태가 남아있지 않는 것에 반해, 전개연산자를 사용한 경우는 !l*d의 내용에 변화가 없음.

     

    (2) 함수의 매개 변수 위치에 사용

    리스트 요소를 하나하나 입력하는 것처럼 전개됨

    da = [2021, 12, 2]
    print(*da)
    >>> 2021 12 2

     

    그래서 format함수와 함꺠 요렇게도 사용 가능

    date = [2024, 3, 31, 11, 11]
    print("{}년 {}월 {}일 {}시 {}분".format(*date))
    >>> 2024년 3월 31일 11시 11분

     

    aka 이렇게 하나하나 풀었던 과거는 이제 안녕

    더보기
    date = [2024, 3, 31, 11, 11]
    print("{}년 {}월 {}일 {}시 {}분".format(date[0], date[1], date[2], date[3], date[4]))

    'study with Q - 파이썬' 카테고리의 다른 글

    32- 딕셔너리와 반복문  (0) 2024.04.09
    31- 4-01 확인문제  (0) 2024.03.31
    29- for 반복문과 리스트  (1) 2024.03.31
    28 - 리스트의 함수  (1) 2024.03.27
    27 - 수열, 배열, 리스트  (0) 2024.03.22
Designed by Tistory.