리스트와 시퀀스는 어떤 관계일까? 리스트(list)는 시퀀스(sequence)의 한 종류일 뿐, 모든 시퀀스가 리스트인 것은 아닙니다. 파이썬에서 시퀀스란 인덱싱과 길이 확인 같은 시퀀스 프로토콜(인터페이스)을 지원하는 모든 데이터 타입을 가리키는 포괄적인 개념입니다. 즉, 시퀀스 타입은 리스트보다 더 넓은 상위 집합(superset)이라고 이해하면 됩니다. 대표적인 시퀀스 타입으로는 리스트 외에도 문자열(str), 튜플(tuple), range 객체, 바이트(bytes) 등이 있습니다. 이들은 모두 len() 함수로 길이를 구하고
Python에서 두 개의 리스트를 다룰 때 + 연산자와 append(또는 extend) 메서드는 비슷해 보이지만 동작 방식이 완전히 다릅니다. 이 차이를 정확히 이해하는 것은 의도치 않은 버그를 피하는 데 매우 중요합니다. 1. 핵심 차이점 + 연산자는 두 리스트를 결합할 때 새로운 리스트 객체를 생성합니다. 따라서 원본 리스트는 전혀 수정되지 않습니다. 반면 append, extend 같은 메서드는 리스트를 제자리(in-place)에서 수정합니다. 즉, 원본 객체 자체가 변경됩니다. 또 한 가지 중요한 차이는, append는 인자
파이썬에서 변수 선언의 기본 개념 파이썬은 동적 타이핑(dynamic typing) 언어이기 때문에 C나 Java처럼 변수를 미리 선언할 필요가 없습니다. 변수는 코드에서 처음으로 값이 할당되는 스코프(scope)에 자동으로 생성됩니다. 즉, 별도의 선언 단계 없이 할당문 하나면 충분합니다. None을 할당하여 변수 초기화하기 변수를 미리 만들어 두고 나중에 실제 값을 넣고 싶다면, None을 할당하는 것이 파이썬의 표준적인 관례입니다. 예제 my_var = None 이 방법을 사용하면 초기화되지 않은(uninitialized)
Python 2.x는 더 이상 지원되지 않는 레거시 버전이며, Python 3.x는 현재 그리고 앞으로의 파이썬 표준입니다. Python 2의 공식 지원은 이미 종료되었으므로, 새로운 프로젝트라면 반드시 Python 3를 사용하는 것이 좋습니다.Python 3.x에만 있는 주요 기능다음은 Python 3.x 릴리스에서만 사용할 수 있고 Python 2.x에서는 제공되지 않는 대표적인 기능들입니다.문자열이 기본적으로 유니코드로 처리됨유니코드(str)와 바이트(bytes)의 명확한 분리예외 체이닝(exception chaining) 지
파이썬 리스트와 튜플의 핵심 차이파이썬에서 리스트(list)와 튜플(tuple)은 모두 여러 값을 하나의 변수에 담을 수 있는 시퀀스 자료형입니다. 그러나 두 자료형의 가장 중요한 차이점은 바로 변경 가능성(mutability)입니다.리스트는 생성한 이후에도 요소를 추가, 수정, 삭제할 수 있는 반면, 튜플은 불변(immutable) 자료형이기 때문에 한 번 생성하면 그 값을 절대 변경할 수 없습니다. 따라서 나중에 데이터를 수정해야 할 가능성이 있다면 리스트를 사용하는 것이 올바른 선택입니다.튜플을 사용하면 좋은 점변경할 수 없다
파이썬 리스트와 배열, 무엇이 다를까?파이썬의 리스트(list)는 매우 유연한 자료구조입니다. 정수, 문자열, 심지어 또 다른 리스트까지 서로 다른 타입의 데이터를 하나의 리스트에 자유롭게 담을 수 있으며, 요소를 추가할 때도 평균적으로 상수 시간(O(1))에 처리되어 성능 면에서도 효율적입니다. 따라서 데이터를 동적으로 늘리거나 줄여야 하는 상황이라면 리스트가 가장 좋은 선택입니다. 다만, C 언어의 배열에 비해 훨씬 많은 메모리 공간을 사용한다는 단점이 있습니다.반면 array.array 타입은 C 배열을 얇게 감싸는(thin
파이썬 튜플과 딕셔너리, 무엇이 다를까? 튜플(tuple)과 딕셔너리(dictionary)는 파이썬에서 가장 널리 사용되는 자료구조지만, 설계 목적과 동작 방식이 완전히 다릅니다. 두 자료구조의 핵심적인 차이점을 하나씩 살펴보겠습니다. 튜플(Tuple)의 특징 튜플은 여러 값을 하나로 묶어 관리하는 불변(immutable) 시퀀스 자료형입니다. 주요 특징은 다음과 같습니다. 요소의 순서가 그대로 유지됩니다. 한 번 생성하면 내용을 추가, 삭제, 수정할 수 없습니다. 모든 데이터 타입을 담을 수 있으며, 서로 다른 타입을 섞어 저
파이썬 튜플이 불변으로 설계된 이유파이썬에서 튜플(tuple)은 한 번 생성되면 그 값을 변경할 수 없는 불변(immutable) 자료형입니다. 이러한 설계에는 여러 가지 중요한 이유가 있습니다.1. 순서 유지튜플은 파이썬에서 순서를 표현하는 수단으로 주로 사용됩니다. 예를 들어, 데이터베이스에서 튜플 리스트 형태로 데이터를 조회할 때, 각 튜플은 가져온 필드의 순서를 그대로 유지합니다. 값이 변경될 수 있다면 이러한 순서 정보의 신뢰성이 떨어질 것입니다.2. 복사 효율성불변 객체는 복사하는 대신 별칭(alias)을 지정할 수 있습
파이썬의 별표(*) 연산자는 시퀀스나 컬렉션을 위치 인수(positional arguments)로 언패킹(unpacking)하는 역할을 합니다. 즉, 튜플에 담긴 요소들을 함수의 각 매개변수에 순서대로 전달하고 싶을 때, 일일이 인덱스로 접근하지 않고도 * 연산자 하나로 간편하게 처리할 수 있습니다.예제 코드def multiply(a, b): return a * b values = (1, 2) print(multiply(*values))*values는 튜플 values를 언패킹하여 첫 번째 요소는 첫 번째 매개변수 a에, 두
Python의 in 연산자는 리스트나 튜플과 같은 컬렉션의 모든 요소를 순회하면서, 주어진 항목과 일치하는 값이 그 안에 존재하는지 확인합니다. 검사 결과는 참(True) 또는 거짓(False)으로 반환됩니다.튜플에서 in 연산자 사용하기my_tuple = (5, 1, 8, 3, 7) print(8 in my_tuple) print(0 in my_tuple)실행 결과True False위 코드에서 8은 튜플 안에 존재하므로 True가 출력되고, 0은 존재하지 않으므로 False가 출력됩니다.딕셔너리에서의 in 연산자딕셔너리에 in 연
튜플 연결 연산자란?파이썬에서 연결 연산자(+)는 두 개 이상의 튜플을 하나로 합쳐 새로운 튜플을 생성하는 연산자입니다. 튜플은 결합 연산자에 지정된 순서대로 이어지며, 왼쪽 피연산자가 먼저, 오른쪽 피연산자가 나중에 배치됩니다.중요한 점은 이 연산이 in-place(제자리) 연산이 아니라는 것입니다. 튜플은 불변(immutable) 자료형이기 때문에 원본 튜플은 절대 수정되지 않으며, 연결 연산을 수행하면 항상 새로운 튜플 객체가 메모리에 생성됩니다.예제 코드아래 예제에서 두 개의 튜플을 연결 연산자로 합쳐보겠습니다.tuple1
일반적으로 * 기호는 곱셈을 나타내는 데 사용되지만, * 왼쪽의 피연산자가 튜플(tuple)이라면 반복 연산자(repetition operator)로 동작합니다. 반복 연산자는 튜플의 복사본을 여러 개 만든 뒤 이를 모두 하나로 이어 붙입니다. 즉, * 연산자를 활용하면 손쉽게 새로운 튜플을 생성할 수 있습니다.예제 1: 단일 요소 튜플 반복하기numbers = (0,) * 5 # 쉼표를 사용해 단일 값 튜플임을 명시합니다(표현식과 구분하기 위함) print(numbers)출력 결과(0, 0, 0, 0, 0)(0,)은 요소가 하나
튜플(tuple)은 불변(immutable) 자료형이기 때문에 개별 요소를 직접 삭제하는 것은 불가능합니다. 대신 리스트 컴프리헨션(list comprehension)이나 슬라이싱(slicing)을 활용해 원하지 않는 요소를 제외한 새로운 튜플을 만드는 방법을 사용할 수 있습니다.del 문으로 튜플 전체 삭제하기튜플 전체를 명시적으로 제거하고 싶다면 del 문을 사용하면 됩니다. del은 객체 자체가 아니라 변수에 대한 참조(reference)를 삭제하며, 삭제된 이후에는 해당 이름으로 더 이상 접근할 수 없습니다.예제tup = (
Python에서 튜플(tuple)의 특정 요소에 접근하거나 일부분을 추출하려면 대괄호 [] 연산자를 사용합니다. 인덱싱은 튜플에서 하나의 요소를 가져오는 기능이며, 슬라이싱은 여러 요소를 한 번에 잘라내는 기능입니다.튜플 인덱싱하기인덱싱 시 양의 정수를 사용하면 왼쪽(앞)부터 해당 위치의 요소를 가져옵니다. 반대로 음의 정수를 사용하면 오른쪽(뒤)부터 역순으로 계산하여 해당 위치의 요소를 가져옵니다. 예를 들어 -1은 마지막 요소를 의미합니다.예제my_tuple = (a, b, c, d) print(my_tuple[1]) # 앞
Python에서 리스트(list)를 튜플(tuple)로 변환하는 것은 매우 간단합니다. 내장 함수인 tuple()에 리스트를 인자로 전달하기만 하면 됩니다.예제my_list = [1, 2, 3] my_tuple = tuple(my_list) print(my_tuple)출력 결과위 코드를 실행하면 다음과 같은 출력을 얻을 수 있습니다.(1, 2, 3)참고 사항튜플은 리스트와 달리 변경 불가능(immutable)한 자료형입니다. 따라서 한 번 생성된 튜플은 요소를 추가, 삭제 또는 수정할 수 없습니다. 데이터가 프로그램 실행 중 변경되
파이썬(Python)에서 딕셔너리(dictionary)의 모든 요소를 제거하는 가장 간단한 방법은 해당 딕셔너리를 빈 딕셔너리로 다시 할당하는 것입니다.방법 1: 빈 딕셔너리로 재할당하기my_dict = {name: foo, age: 28}my_dict = {}print(my_dict)출력 결과{}방법 2: del 키워드로 키 삭제하기del 키워드를 사용하면 특정 키를 하나씩 삭제할 수 있으며, 모든 키를 순회하면서 반복적으로 삭제하면 딕셔너리 전체를 비울 수 있습니다.my_dict = {name: foo, age: 28}keys
Python에서 딕셔너리(dictionary)에 특정 키가 존재하는지 확인하는 가장 간단하고 일반적인 방법은 in 연산자를 사용하는 것입니다. in 연산자는 주어진 키가 딕셔너리 내에 있는지 검사한 후, 존재하면 True, 존재하지 않으면 False를 반환합니다.예제다음 예제는 in 연산자를 사용하여 딕셔너리에 키가 있는지 확인하는 방법을 보여줍니다.my_dict = {name: TutorialsPoint, time: 15 years, location: India} print(name in my_dict) print(foo in m
Python에서 딕셔너리(dictionary)에 저장된 데이터를 활용하려면 특정 키(key)에 해당하는 값을 꺼내오는 방법을 반드시 알아야 합니다. 가장 기본적인 방법은 대괄호 [] 연산자를 사용하는 것이며, 그 외에도 안전하게 값을 조회할 수 있는 get() 메서드가 제공됩니다.1. [] 연산자로 값 가져오기딕셔너리 이름 뒤에 대괄호를 붙이고 그 안에 키를 전달하면, 해당 키와 연결된 값을 즉시 얻을 수 있습니다.예제my_dict = {name: TutorialsPoint, time: 15 years, location: India
파이썬(Python)에서 딕셔너리(dictionary)에 저장된 모든 키(key)의 목록을 확인하고 싶을 때가 자주 있습니다. 가장 간단하고 권장되는 방법은 내장 함수인 dict.keys()를 사용하는 것입니다.방법 1: dict.keys() 사용하기keys() 메서드는 딕셔너리의 모든 키를 담은 뷰 객체(view object)를 반환합니다. 이를 list()로 감싸면 키의 리스트를 손쉽게 얻을 수 있습니다.my_dict = {name: TutorialsPoint, time: 15 years, location: India} key_
파이썬에서 딕셔너리(dictionary)에 저장된 모든 값을 리스트 형태로 가져오고 싶다면 dict.values() 메서드를 사용하는 것이 가장 간단한 방법입니다. 이 메서드는 딕셔너리의 모든 값을 담은 뷰(view) 객체를 반환하며, 여기에 list() 함수를 적용하면 손쉽게 리스트로 변환할 수 있습니다.방법 1: values() 메서드 사용하기my_dict = {name: TutorialsPoint, time: 15 years, location: India} value_list = list(my_dict.values()) pri