Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python TypeError:목록("int" 아님)만 연결할 수 있습니다.

목록은 다른 목록에 연결할 수 있습니다. 즉, 한 목록의 내용을 다른 목록에 추가할 수 있습니다. 정수와 같은 다른 데이터 유형의 값은 목록에 연결할 수 없습니다.

정수를 목록에 연결하려고 하면 Python 인터프리터가 "TypeError:can only concatenate list (not" not) to list to list" 오류를 반환합니다.

이 가이드에서는 이 오류의 의미와 작동 방식에 대해 설명합니다. 코드에서 이 문제를 해결하는 데 도움이 되는 예제를 살펴봅니다.

TypeError:목록("int" 아님)만 목록에 연결할 수 있습니다.

연결을 사용하면 두 개의 목록을 쉽게 추가할 수 있습니다. 확장() 메서드를 사용하여 목록을 다른 목록에 추가할 수 있지만 연결에는 더하기 기호(+)라는 하나의 기호만 사용하면 됩니다.

목록은 연결할 수 있는 유일한 개체가 아닙니다. 딕셔너리 또는 튜플과 같은 모든 반복 가능한 개체를 연결할 수 있습니다.

데이터 유형이 다른 두 개체는 연결할 수 없습니다. 이것은 목록을 사전과 연결하거나 정수를 목록과 연결할 수 없음을 의미합니다.

연결을 사용하여 목록에 단일 정수 항목을 추가하는 경우 "TypeError:can only concatenate list("int" 아님) to list""가 발생합니다.

예시 시나리오

금요일에 한 카페에서 특정 샌드위치에 대해 주문한 횟수를 추적하는 프로그램을 구축할 것입니다. 75번 이상 주문한 모든 샌드위치를 ​​필터링하여 가장 인기 있는 샌드위치를 ​​확인하려고 합니다.

참가자의 81%는 부트캠프에 참석한 후 기술 직업 전망에 대해 더 자신감을 느꼈다고 말했습니다. 지금 부트캠프에 참여하십시오.

부트캠프 졸업생은 부트캠프 시작부터 첫 직장을 찾는 데까지 6개월도 채 걸리지 않았습니다.

샌드위치 목록과 각 샌드위치에 대해 주문한 횟수가 포함된 목록의 두 가지 목록을 정의하는 것으로 시작합니다.

sandwiches = ["Egg and Cress", "Chicken Club", "Hummus and Tomato", "Cheese"]
orders = [54, 77, 22, 98]

우리의 목록은 "sandwiches" 및 "orders" 변수에 할당됩니다. 다음으로 75번 이상 주문된 샌드위치의 인덱스 번호를 추적하는 목록을 정의합니다.

orders_75 = []

현재 이 목록은 비어 있습니다. 75번 이상 주문한 샌드위치가 무엇인지 아직 파악하지 못했기 때문입니다.

다음으로, 샌드위치 및 주문 목록을 반복하여 75회 이상 주문한 샌드위치를 ​​찾습니다. for 루프를 사용하여 이 작업을 수행할 수 있습니다.

for s in range(0, len(sandwiches)):
	if orders[s] > 75:
		orders_75 = orders_75 + s

우리의 코드는 "샌드위치" 목록의 길이와 0 범위의 각 숫자를 반복합니다. 샌드위치에 대한 "orders" 목록의 해당 값이 75보다 크면 해당 샌드위치의 인덱스 위치를 "orders_75" 목록에 추가합니다.

다음으로 프로그램이 작동하는지 확인하기 위해 75번 이상 주문한 샌드위치를 ​​출력하는 for 루프를 작성합니다.

for o in orders_75:
	print(sandwiches[o])

Python 코드를 실행하고 어떤 일이 일어나는지 봅시다:

Traceback (most recent call last):
  File "main.py", line 9, in <module>
	orders_75 = orders_75 + s
TypeError: can only concatenate list (not "int") to list

코드가 오류를 반환합니다.

해결책

오류 메시지에 언급된 코드 줄을 살펴보세요.

	orders_75 = orders_75 + s

정수 값을 목록에 연결하려고 합니다. 연결은 동일한 데이터 유형의 반복 가능한 개체에서만 작동하기 때문에 이 작업을 수행할 수 없습니다.

이 오류를 해결하려면 append()를 사용해야 합니다. 목록에 항목을 추가하는 메서드입니다. 이 방법은 목록에 항목을 추가하도록 특별히 설계되었습니다. 항목은 사전, 정수 또는 부동 소수점 숫자와 같은 모든 데이터 유형이 될 수 있습니다.

append()를 사용하도록 orders_75 코드 줄을 변경합니다. 방법:

	orders_75.append(s)

append() 때문에 "orders_75"에 값을 할당할 필요가 없습니다. 메서드는 제자리에 항목을 목록에 추가합니다. 코드를 실행해 보겠습니다.

Chicken Club
Cheese

우리 코드는 75번 이상 주문한 샌드위치 목록을 출력합니다. 이 기준을 충족하는 샌드위치는 치킨 클럽과 치즈의 두 가지입니다.

결론

"TypeError:can only concatenate list("not") to list" 오류는 정수를 목록에 연결하려고 할 때 발생합니다.

이 오류는 목록만 목록에 연결할 수 있기 때문에 발생합니다. 이 오류를 해결하려면 append()를 사용하세요. 목록에 항목을 추가하는 메서드입니다.

이제 전문가처럼 이 Python 오류를 해결할 준비가 되었습니다!