파이썬) 서로 다른 len의 리스트를 더하기
조회수 2524회
서로 len이 다른 두개의 리스트를 더하는 로직을 짜고 싶습니다. list1=[1,2,3,4,5]와 list2=[1,1,1,1,1,1,1]를 더해서 list3=[2,3,4,5,6,1,1]을 만들고 싶습니다. 하지만 자꾸 에러가 나네요 ㅠㅠ 혹시 이보다 더욱 쉽게 코드를 짤 수 있나요?
lis1=[1,2,3,4,5] #len=5
list2=[1,1,1,1,1,1,1] #len=7
if len(list1)>len(list2):
for i in range(len(list1)):
list2.append(0) if list2[i]=[]
list3[i]=list1[i]+list2[i]
else:
for i in range(len(list2)):
list1.append(o) if list1[i]=[]
list3[i]=list1[i]+list2[i]
print(list3)
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
list1=[1,2,3,4,5] #len=5 list2=[1,1,1,1,1,1,1] #len=7 if len(list2) > len(list1): for i in range(len(list1)): list2[i] = list2[i] + list1[i] print(list2) else: for i in range(len(list2)): list1[i] = list1[i] + list2[i] print(list1)
그냥 둘 중에 제일 긴 리스트의 요소에 길이가 작은 리스트의 요소를 더하고, for 문이 종료되면 길이가 긴 리스트를 출력하시면 간단하게 됩니다.
그리고 그 코드에서 오류가 발생하는 이유는
- 6번째 줄 if list2[i]=[]... 비교연산자에서 "같다" 라는 기호는 == 입니다.
- 7번째 줄 list3[i]=list1[i]+list2[i]... list3 이라는 리스트를 선언하지 않았습니다.
- 1번째 줄 lis1=[1,2,3,4,5]... 위에선 lis1 으로 선언하셨는데 밑에선 list1이라고...
-
(•́ ✖ •̀)
알 수 없는 사용자
댓글 입력