이번이 세 번째로 이것을 알아 내려고 노력하고 있으며 새로운 파이썬 사용자로서 저는 제 교수님이 무엇을 말하려고하는지 정말로 이해하지 못합니다.
목록을 가져 와서 "반으로 접는"함수를 파이썬으로 만들어야합니다. 첫 번째 용어와 마지막 용어가 더해 지도록 두 번째 용어와 두 번째 용어를 마지막 용어 등으로 만듭니다. 빈 목록이 있으면 출력 비어 있어야하며 홀수 목록이있는 경우 중간 용어를 추가해서는 안됩니다.
(prof의 원래 프롬프트 : Prompt : 목록을 입력으로 사용하고 "반으로 접힌"목록을 생성하는 함수를 만듭니다. 즉, 출력의 첫 번째 용어는 입력의 첫 번째 용어와 마지막 용어의 합입니다. ; 출력의 두 번째 항은 두 번째 항과 마지막에서 두 번째 항의 합입니다. 따라서 [10,2,3,1]의 입력은 [11,5]를 생성하고 [10,2의 입력은 , 3]은 [13,2]를 생성합니다. 입력이 빈 목록이면 빈 목록을 반환해야합니다. 입력이 [5]이면 출력은 [5] 여야합니다.)
다른 사람들의 도움이되는지도에서 이것이 제가 지금까지 가지고있는 것입니다.
a = [10, 14, 21, 25, 52, 55]
def folded_list(input_list):
a = input_list
folded_list_output = [ a[i] + a[-(i + 1) ] for i in range( len(a) // 2)]
return folded_list_output
print(folded_list(a))
제 교수님이 원하시는 것이라고 생각했습니다. 그러나 그는 다음과 같이 말했습니다. 원하는 작업을 수행 할 수있는 코드 스 니펫이 있습니다 (멋진 "목록 이해"를 사용하여 for 루프가 아닌 대괄호 구성이라고 함). 기능 정의 및 작동 여부를 테스트합니다. 목록 이해력의 사용은 그것이 함수가 아닌 이유가 아니라 def function_name(arguments):
선이 보이지 않는다는 사실입니다 . 항상 "코너 케이스"를 테스트하는 것이 좋습니다. 예를 들어 빈 목록을 입력으로 제공 할 때 원하는 작업을 수행합니까? 요소 수가 홀수 인 목록은 어떻게 되나요? (힌트 : 중간 요소가 완전히 삭제 되었기 때문에해야 할 일을하지 않습니다.)
나는 그가 말하려는 것을 정말로 이해하지 못한다.
def folded_list(input_list):
a = input_list
folded_list_output = [ a[i] + a[-(i + 1) ] for i in range( len(a) // 2)]
return folded_list_output
그가 논증 섹션에서 찾고 있던 것이 었습니다. 누구든지 그가 의미하는 바를 이해하고 내 코드에서 무엇을 수정해야하는지 이해합니까?
시작 (예 :)부터 i
중간 까지 반복 하고 i
양쪽에서 th 요소를 추가 한 다음 새 목록을 반환 할 수 있습니다.
a = [10, 14, 21, 25, 52, 55]
b = [10, 14, 21, 25, 52, 55, 1]
def folded_list(input_list):
new_list = []
l = len(input_list)
for i in range(l//2):
new_list.append(input_list[i] + input_list[-i-1])
if l % 2 != 0:
return new_list + [input_list[l//2]]
return new_list
print(folded_list(a)) # [65, 66, 46]
print(folded_list(b)) # [11, 69, 73, 25]
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다