반응형

리스트 7

TypeError: 'str' object does not support item assignment 해결법

개요 다음과 같은 문자열 a가 있다고 가정해보겠습니다. a = 'abcde' a의 3번 인덱스 위치의 'd'를 'g'로 바꾸려고 시도해보려는데, 다음과 같이 에러가 발생하였습니다. a[3] = 'g' # TypeError: 'str' object does not support item assignment 원인 자료형 종류에는 수정이 가능한 객체인 mutable 타입(리스트, 딕셔너리 등)이 있고, 수정이 불가능한 객체인 immutable 타입(튜플, 문자열 등)이 있는데 문자열은 immutable 자료형이라서 위와 같이 인덱싱(혹은 슬라이싱)을 통한 값 수정이 불가능한 것입니다. 해결 방법 1. 문자열 수동 할당 문자열 덧셈 연산으로 이어 붙이기가 되는 점을 이용하여 재할당을 해주는 방법입니다. 다만, ..

Python/Debugging 2022.10.26

파이썬 리스트 내 중복 원소만 추출/중복 제거 방법 정리

list 자료형 내 중복 원소 찾기, 제거하기 파이썬의 리스트 자료형에서 2번 이상 등장한 원소들만 추출하는 방법과 중복을 제거하여 고유한 값들만 남기는 방법에 대해서 살펴보겠습니다. 리스트 내 2회 이상 등장 원소만 추출 for문을 통해 각 원소를 순회하며 처음 등장한 값인지 여부를 판별하여 이미 이전에 등장했던 원소들만 솎아내어 중복 원소만 추출이 쉽게 가능합니다. a = [1, 2, 3, 1, 2, 4, 5, 1] x = [] # 처음 등장한 값인지 판별하는 리스트 new_a = [] # 중복된 원소만 넣는 리스트 for i in a: if i not in x: # 처음 등장한 원소 x.append(i) else: if i not in new_a: # 이미 중복 원소로 판정된 경우는 제외 new_a..

TypeError: 'list' object is not callable 원인과 해결법

파이썬 object is not callable 에러 디버깅 리스트 인덱싱 등 과정에서 자주 등장할 수 있는 오류 종류인 '~~ object is not callable' 종류의 오류의 의미와 원인에 대해서 살펴보고 해결 방법을 파헤쳐보도록 하겠습니다. 오류 의미, 원인 이해를 돕기 위하여, 아래와 같은 아주 간단한 리스트와 함수를 생각해보도록 하겠습니다. x = [1, 2, 3] # 리스트 def double(num): # 함수 return num * 2 x[0] # 리스트 인덱싱 double(1) # 함수 호출 리스트에서 자료를 추출하는 인덱싱 과정에서는 [] 모양의 괄호가 사용되고, 함수에 input을 넣어 호출하는 과정에서는 () 모양의 괄호가 사용되는 것을 알 수 있습니다. 그렇다면 만약 인덱싱..

Python/Debugging 2022.03.30

파이썬 리스트 컴프리헨션(List Comprehension) 예제 총정리

Python 리스트 컴프리헨션(조건제시법) 경우의 수 정리 안녕하세요. 이번 시간에는 파이썬에서 조건제시법으로 리스트 자료형의 원소들을 간단하게 생성할 수 있는 기능인 리스트 컴프리헨션(List Comprehension)의 활용 방법에 대해서 총망라해보는 시간을 가져보도록 하겠습니다. List Comprehension 기본형 리스트 컴프리헨션의 기본 사용 방법은 아래의 형태와 같습니다. [생성될 원소 for 반복될 값 조건] 주로, 조건을 반복 제시하는 경우는 for문을 이용하여 구현되는데요. 예를 들어, 3, 6, 9, 12, ... ,30 까지의 원소를 생성하고 싶은 경우는 1~10까지의 수에 대하여 3을 곱해주는 형태의 조건을 제시하면 될 것입니다. 이 경우 아래와 같은 코드 한줄로 손쉽게 해당 원..

파이썬 리스트 인덱싱, 슬라이싱 경우의 수 총정리

Python List 인덱싱과 슬라이싱 방법 안녕하세요. 이번 시간에는 파이썬 기본 자료형 중 하나인 리스트 자료형에서 인덱싱과 슬라이싱을 통하여 원하는 자료를 추출해낼 수 있는 방법을 총망라하여 다루어보도록 하겠습니다. 리스트 인덱싱 기본 방법 먼저, 아래와 같은 자료가 총 5개인 List가 있다고 가정해보겠습니다. a = [10, -2, 'nice', 15, 'good'] 유의할 점은 파이썬에서는 숫자를 0부터 셈한다는 것 입니다. 이 점을 이용하면 직관적으로 0번째 자료는 10, 1번째 자료는 -2처럼 되고 있는 상황을 이해해볼 수 있습니다. 인덱싱은 n번째 자료 1개를 추출해내는 방법으로, 리스트 a에 대하여 n번째 자료를 가져오는 상황에서는 a[n]과 같은 문법으로 사용합니다. # 인덱싱 예시 ..

[Numpy] 파이썬 리스트를 어레이로, 어레이를 리스트로 변환(tolist 함수)

파이썬 list to array와 numpy array to list 방법 파이썬의 리스트 자료형을 넘파이 배열로 바꾸거나 numpy array에서 list 자료형으로 바꾸는 방법에 대해서 간단히 정리해보도록 하겠습니다. 파이썬 list를 numpy array로 바꾸기 : np.array 함수 리스트를 넘파이 어레이로 만드는 방법은 np.array 함수를 이용하면 됩니다. 단, 다차원 array에서는 내부 배열 간 원소 개수가 같아야 하기에, 해당 조건이 위배되는 경우에는 내부 원소는 list 형태로 잔류하게 됩니다. import numpy as np a = [1.5, 3.7, 4.4, 9.2] b = [[1, 3, 5], [2, 4, 6]] c = [[1], [2, 3], [4, 5, 6]] np.ar..

Python/Numpy 2022.01.09

[Numpy] 파이썬 리스트 vs 넘파이 어레이(배열) 차이

파이썬 list와 numpy array 차이 비교 이번 시간에는 얼핏 비슷해 보이지만 완전히 기능이 다른 파이썬의 리스트와 넘파이 어레이의 차이를 간단히 비교해보도록 하겠습니다. 파이썬 리스트 vs 어레이 차이 1 : 선언 조건 리스트는 숫자형, 문자열 등 모든 자료를 타입을 보존하여 가질 수 있습니다. (여러 가지 자료형 허용) 반면, 넘파이 어레이는 숫자형과 문자열이 섞이면 모두 문자열로 전환됩니다. (한 가지 자료형만 허용) import numpy as np a = [1, 3, 5, 'a', 'b'] # 1, 3, 5는 숫자형, 'a', 'b'는 문자열 b = np.array([1, 3, 5, 'a', 'b']) # '1', '3', '5', 'a', 'b'의 문자열로 전환 2차원 이상의 배열 구조..

Python/Numpy 2022.01.09
반응형