ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Python's Sequential Type
    Computer Science/Basic Programming with Python 2021. 11. 8. 22:34

    Sequential Type

    Sequential Type이란, 값들이 연속적으로 저장된 형태를 뜻하는데, string도 Sequential Type에 속한다. Python에서는 List와 Tuple이 있다. Sequential Type에서는 아래와 같은 연산들을 할 수 있다.

    index: A[3]

    slicing: A[3:6]

    connect: +

    repeat: *

    find: in

    length: len()

     

    List

    Python의 리스트는, 어떤 값들을 정렬해서 갖고있는 형태이다. 숫자나 string등 다양한 형태를 말그대로 리스트를 만들어서 저장하는것이다. 아래 예시를 보자.

    a = [1, 2, 3, 4]
    print(a)
    
    [1, 2, 3, 4]

    아래와같이 숫자를 갖고있는 리스트를 프린트 하면, 리스트가 프린트된다.

    a = [1, 2, 3, 4]
    print(a[1])
    
    2

    요소 하나를, index를 이용해서 추출할 수 있고,

    a = [1, 2, 3, 4, 5, 6, 7, 8]
    print(a[1:-3])
    
    [2, 3, 4, 5]

    slice를 이용해서, 리스트에서 또다른 리스트를 추출해낼 수 있다.

     

    Nested List

    리스트 안에는 어떠한 값이든 들어갈 수 있는데, 리스트 또한 포함시킬 수 있다. 아래와 같이 리스트 안의 리스트를 접근할 수 있다.

    b = [1, 2, 3, [1, 2, 3]]
    
    print(b[3])
    [1, 2, 3]
    
    print(b[3][2])
    3

     

    Update

    리스트를 만든 후에, 수정도 가능하다. 인덱스를 이용해서 바꾸어주면 된다.

    a = [1, 2, 3, 4, 5, 6, 7, 8]
    
    print(a[3])
    4
    
    a[3] = 10
    print(a[3])
    10
    
    print(a)
    [1, 2, 3, 10, 5, 6, 7, 8]

    위의 예시에서 처음 index 3을 프린트하면, 4를 프린트하지만, 10으로 바꿔준 후에는 10을 프린트한다. 리스트 전체를 프린트해보면, 10으로 바뀌어있는것도 확인할 수 있다.

     

     

    functions

    이 리스트를 다양하게 활용할 수 있는 함수들이 있다.

    • list.append(value): 뒤에 값을 추가한다
      • a = [1, 2, 3, 4]
        a.append(5)
        print(a)
        [1, 2, 3, 4, 5]
    • list.sort(): 정렬한다. reverse 옵션을 이용해서 descending으로 정렬도 가능하다.
      • a = [1, 5, 3, 2]
        print(a)
        [1, 5, 3, 2]
        
        a.sort()
        print(a)
        [1, 2, 3, 5]
        
        a.sort(reverse=True)
        print(a)
        [5, 3, 2, 1]
    • sorted(list): 정렬을 하지만 메모리에서 변함은 없다.
      • a = [1, 5, 3, 2]
        print(a)
        [1, 5, 3, 2]
        
        sorted(a)
        print(a)
        [1, 5, 3, 2]
        
        print(sorted(a))
        [1, 2, 3, 5]
        
        print(a)
        [1, 5, 3, 2]
        
        b = sorted(a)
        print(b)
        [1, 2, 3, 5]
    • list.reverse(): 뒤집는다
      • a = [1, 0, 2, 3, 4]
        print(a)
        [1, 0, 2, 3, 4]
        
        a.reverse()
        print(a)
        [4, 3, 2, 0, 1]
        
        a.reverse()
        print(a)
        [1, 0, 2, 3, 4]
    • list.index(value): 값이 있는 위치를 반환한다. 값이 없을경우 에러
      • a = [1, 3, 2, 5]
        print(a.index(1))
        0
        
        print(a.index(3))
        1
        
        print(a.index(2))
        2
        
        print(a.index(5))
        3
    • list.del(index): 인덱스에 위치한 값을 삭제한다.
      • a = [1, 3, 2, 5]
        print(a)
        [1, 3, 2, 5]
        
        del a[2]
        print(a)
        [1, 3, 5]
        
        del a[0]
        print(a)
        [3, 5]
    • list.insert(index, value): 원하는 위치에 값을 넣는다
      • a = [1, 3, 2, 5]
        print(a)
        [1, 3, 2, 5]
        
        a.insert(0, 5)
        print(a)
        [5, 1, 3, 2, 5]
        
        a.insert(3, 7)
        print(a)
        [5, 1, 3, 7, 2, 5]
    • list.remove(value)
      • animals = ['cat', 'dog', 'rabbit', 'guinea pig']
        print(animals)
        ['cat', 'dog', 'rabbit', 'guinea pig']
        
        animals.remove('rabbit')
        print(animals)
        ['cat', 'dog', 'guinea pig']

     

    Tuple

    튜플은 리스트와 비슷하지만 값을 변경할 수 없다(Immutable). 또한 [] 대신 {}을 사용하고, 1개의 값밖에 없다면 ,를 붙여야한다.

    a = (1, 2, 3)
    a = (1,)
    a = 1, 2, 3
    a = ()
    a = tuple(1, 2, 3)

     

    Set

    set이란, 데이터를 순서 상관없이 저장하는 말그대로 "세트"인데, 중복을 허가하지 않는다. 사실 Sequencial(순서대로)는 아니다.

    a = "Hello, world"
    print(set(a))
    {'l', 'e', ' ', 'H', ',', 'w', 'r', 'o', 'd'}
    
    a = [31, 12, 2, 4, 4]
    print(a)
    [31, 12, 2, 4, 4]
    
    print(set(a))
    {2, 12, 4, 31}

     set에서는 아래 함수들을 사용할 수 있다.

    • set.add(value): 값 추가
    • set.clear(): 전체 제거
    • set1.union(set2): 합집합
    • set2.intersection(set2): 교집합
    • set1.difference(set2): 차집합
    • 이 이외에도 copy, discard, remove, pop, update, intersection_update, difference_update등이 있다.

     

    Type Conversion

    set(), list(), tuple()을 이용해서 타입을 바꿔줄수도 있다(참고).

    # Python code to demonstrate Type conversion
    # using  tuple(), set(), list()
     
    # initializing string
    pokemons = ['pikachu', 'Charmander', 'Squirtle', 'Mew']
     
    # printing string converting to tuple
    pokemon_tuple = tuple(pokemons)
    print ("After converting list to tuple : ",end="")
    print (pokemon_tuple)
    After converting list to tuple : ('pikachu', 'Charmander', 'Squirtle', 'Mew')
     
    # printing string converting to set
    pokemon_set = set(pokemon_tuple)
    print ("After converting tuple to set : ",end="")
    print (pokemon_set)
    After converting tuple to set : {'Mew', 'pikachu', 'Squirtle', 'Charmander'}
     
    # printing string converting to list
    pokemon_list = list(pokemon_set)
    print ("After converting set to list : ",end="")
    print (pokemon_list)
    After converting set to list : ['Mew', 'pikachu', 'Squirtle', 'Charmander']

     

    colab 코드

    'Computer Science > Basic Programming with Python' 카테고리의 다른 글

    Python Data Copy  (0) 2021.11.09
    Python Dictionary  (0) 2021.11.09
    Python's String  (0) 2021.11.08
    Python's Numbers  (0) 2021.11.04
    Python Basic  (0) 2021.11.03

    댓글

Designed by Tistory.