[DATA STRUCTURE] List

Junseo Han·2023년 4월 14일
0

자료구조

목록 보기
5/8

Set

집합(set)은 서로 구별 가능한 객체들의 모임으로, 이를 구성하는 객체들을 원소(element) 또는 멤버(member)라고 부른다.

집합에 대해 알아두어야 할 두 가지 중요한 점

◾ 집합은 중복된 원소를 가질 수 있다. 하지만 중복된 원소를 가진 집합과 중복된 원소를 가지지 않는 집합은 정확히 같은 집합이라고 한다. (확장성의 공리)

◾ 집합의 원소들이 나열된 순서는 중요하지 않다.

집합의 선언은 다음과 같다. set A = { 1, 2, 3 }

set 클래스에 추가할 수 있는 요소들은 변경할 수 없는(immutable) 자료형만 가능하다.

예를 들어, 정수, 실수, 문자열 등이 요소로 사용될 수 있다.

빈 집합을 생성하려면 set() 생성자를 이용하면 된다.

Lists (Sequences)

리스트는 값의 순서를 갖는 데이터 타입으로, 동일한 값이 여러번 나타날 수 있다.

리스트는 다음과 같이 선언될 수 있다. L = [1, 2, 3]

파이썬에는 기본적으로 리스트(List), 튜플(Tuple), 문자열(String)이라는 시퀀스(sequence) 타입이 내장되어있다. 각각의 요소는 인덱스(index)를 이용하여 개별적으로 접근할 수 있다.

예시)

# 리스트 인덱싱 예시
a = [1, 2, 3, 4, 5]
print(a[0])  # 1 출력
print(a[3])  # 4 출력

# 튜플 인덱싱 예시
b = (10, 20, 30, 40, 50)
print(b[1])  # 20 출력
print(b[4])  # 50 출력

# 문자열 인덱싱 예시
c = "Hello, world!"
print(c[0])  # 'H' 출력
print(c[7])  # 'w' 출력

삽입(Insert)

리스트에서 요소를 삽입하려면 다음과 같은 함수를 사용한다.

append()

append() 메소드를 이용하여 리스트의 맨 뒤에 요소를 추가할 수 있다.

예시)

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

삭제(Delete)

리스트에서 요소를 삭제하기 위해 다음의 함수를 사용한다.

remove(), del()

del 키워드를 이용하여 리스트의 특정 위치에 있는 요소를 삭제할 수 있다.

예시)

a = [1, 2, 3]
del a[1]
print(a)  # [1, 3]

remove() 메소드를 이용하여 리스트에서 특정 값을 삭제할 수 있다.
만약 리스트에 해당 값이 여러 개 존재한다면, 가장 먼저 나오는 값 하나만 삭제된다.

예시)

a = [1, 2, 3, 2]
a.remove(2)
print(a)  # [1, 3, 2]

Abstract Definition

파이썬에서는 자바와 비슷하게 추상정의를 상용해서 클래스를 생성 가능하다.

예시)

from abc import ABCMeta, abstractmethod

class Sequence(metaclass = ABCMeta):
    
    @abstractmethod
    def __len__(self):
        """Return the length of the sequence."""
    
    @abstractmethod
    def __getitem__(self, j):
        """Return the element at index j of the sequence."""
    
    def __contains__(self, val):
        """Return True if val found in the sequence; False otherwise."""
        for j in range(len(self)):
            if self[j] == val:
                return True
        return False
    
    def index(self, val):
        """Return leftmost index at which val is found (or raise ValueError)."""
        for j in range(len(self)):
            if self[j] == val:
                return j
        
        raise ValueError('value not in sequeunce')
    
    def count(self, val):
        """Return the number of elements equal to given value."""
        k = 0
        for j in range(len(self)):
            if self[j] == val:
                k += 1
        return k
        
profile
전북대학교 소프트웨어공학과 2학년 한준서입니다!

0개의 댓글