복붙노트

[PYTHON] 새로운 LIST에 두 개의 LIST 값 합계를 더한다.

PYTHON

새로운 LIST에 두 개의 LIST 값 합계를 더한다.

나는 다음의 두 가지 목록을 가지고있다.

first = [1,2,3,4,5]
second = [6,7,8,9,10]

이제 두 목록의 항목을 새 목록에 추가하고 싶습니다.

출력은

three = [7,9,11,13,15]

해결법

  1. ==============================

    1.zip 함수는 여기에서 유용하며 목록 이해와 함께 사용됩니다.

    zip 함수는 여기에서 유용하며 목록 이해와 함께 사용됩니다.

    [x + y for x, y in zip(first, second)]
    

    두 개의 목록 대신 목록 목록이있는 경우 :

    lists_of_lists = [[1, 2, 3], [4, 5, 6]]
    [sum(x) for x in zip(*lists_of_lists)]
    # -> [5, 7, 9]
    
  2. ==============================

    2.문서

    문서

    import operator
    map(operator.add, first,second)
    
  3. ==============================

    3.리스트 a와 b가 모두 같은 길이라고 가정하면 zip, numpy 또는 다른 것이 필요하지 않습니다.

    리스트 a와 b가 모두 같은 길이라고 가정하면 zip, numpy 또는 다른 것이 필요하지 않습니다.

    Python 2.x 및 3.x :

    [a[i]+b[i] for i in range(len(a))]
    
  4. ==============================

    4.이것은 임의의 수의 목록으로 확장됩니다.

    이것은 임의의 수의 목록으로 확장됩니다.

    [sum(sublist) for sublist in itertools.izip(*myListOfLists)]
    

    귀하의 경우, myListOfLists [첫 번째, 두 번째]

  5. ==============================

    5.numpy의 기본 동작은 componentwise를 추가하는 것입니다.

    numpy의 기본 동작은 componentwise를 추가하는 것입니다.

    import numpy as np
    np.add(first, second)
    

    어느 출력

    array([7,9,11,13,15])
    
  6. ==============================

    6.다음 코드를 시도해보십시오.

    다음 코드를 시도해보십시오.

    first = [1, 2, 3, 4]
    second = [2, 3, 4, 5]
    third = map(sum, zip(first, second))
    
  7. ==============================

    7.이렇게하는 쉬운 방법과 빠른 방법은 다음과 같습니다.

    이렇게하는 쉬운 방법과 빠른 방법은 다음과 같습니다.

    three = [sum(i) for i in zip(first,second)] # [7,9,11,13,15]
    

    또는 numpy sum을 사용할 수 있습니다.

    from numpy import sum
    three = sum([first,second], axis=0) # array([7,9,11,13,15])
    
  8. ==============================

    8.

    first = [1, 2, 3, 4, 5]
    second = [6, 7, 8, 9, 10]
    three = map(lambda x,y: x+y,first,second)
    print three
    
    
    
    Output 
    [7, 9, 11, 13, 15]
    
  9. ==============================

    9.여기에 또 다른 방법이 있습니다. 파이썬의 내부 __add__ 함수를 사용합니다.

    여기에 또 다른 방법이 있습니다. 파이썬의 내부 __add__ 함수를 사용합니다.

    class SumList(object):
        def __init__(self, this_list):
            self.mylist = this_list
    
        def __add__(self, other):
            new_list = []
            zipped_list = zip(self.mylist, other.mylist)
            for item in zipped_list:
                new_list.append(item[0] + item[1])
            return SumList(new_list)
    
        def __repr__(self):
            return str(self.mylist)
    
    list1 = SumList([1,2,3,4,5])
    list2 = SumList([10,20,30,40,50])
    sum_list1_list2 = list1 + list2
    print(sum_list1_list2)
    

    산출

    [11, 22, 33, 44, 55]
    
  10. ==============================

    10.zip ()을 사용하면 두 배열을 서로 "interleave"한 다음 map ()을 사용하여 iterable의 각 요소에 함수를 적용 할 수 있습니다.

    zip ()을 사용하면 두 배열을 서로 "interleave"한 다음 map ()을 사용하여 iterable의 각 요소에 함수를 적용 할 수 있습니다.

    >>> a = [1,2,3,4,5]
    >>> b = [6,7,8,9,10]
    >>> zip(a, b)
    [(1, 6), (2, 7), (3, 8), (4, 9), (5, 10)]
    >>> map(lambda x: x[0] + x[1], zip(a, b))
    [7, 9, 11, 13, 15]
    
  11. ==============================

    11.내 대답은 9 월 25 일 3 월 17 일에 답변 한 Thiru 's와 반복됩니다.

    내 대답은 9 월 25 일 3 월 17 일에 답변 한 Thiru 's와 반복됩니다.

    더 간단하고 빨랐습니다. 그의 해결책은 다음과 같습니다.

    너 질책이 필요해!

  12. ==============================

    12.리스트에 나머지 값들을 추가하고 싶다면 이것을 사용할 수 있습니다 (이것은 Python 3.5에서 작동합니다)

    리스트에 나머지 값들을 추가하고 싶다면 이것을 사용할 수 있습니다 (이것은 Python 3.5에서 작동합니다)

    def addVectors(v1, v2):
        sum = [x + y for x, y in zip(v1, v2)]
        if not len(v1) >= len(v2):
            sum += v2[len(v1):]
        else:
            sum += v1[len(v2):]
    
        return sum
    
    
    #for testing 
    if __name__=='__main__':
        a = [1, 2]
        b = [1, 2, 3, 4]
        print(a)
        print(b)
        print(addVectors(a,b))
    
  13. ==============================

    13.

        first = [1,2,3,4,5]
        second = [6,7,8,9,10]
        #one way
        third = [x + y for x, y in zip(first, second)]
        print("third" , third) 
        #otherway
        fourth = []
        for i,j in zip(first,second):
            global fourth
            fourth.append(i + j)
        print("fourth" , fourth )
    #third [7, 9, 11, 13, 15]
    #fourth [7, 9, 11, 13, 15]
    
  14. ==============================

    14.여기에 또 다른 방법이 있습니다. 그것은 나를 위해 잘 작동합니다.

    여기에 또 다른 방법이 있습니다. 그것은 나를 위해 잘 작동합니다.

    N=int(input())
    num1 = list(map(int, input().split()))
    num2 = list(map(int, input().split()))
    sum=[]
    
    for i in range(0,N):
      sum.append(num1[i]+num2[i])
    
    for element in sum:
      print(element, end=" ")
    
    print("")
    
  15. ==============================

    15.

    j = min(len(l1), len(l2))
    l3 = [l1[i]+l2[i] for i in range(j)]
    
  16. ==============================

    16.아마도 가장 간단한 접근법 일 것입니다.

    아마도 가장 간단한 접근법 일 것입니다.

    first = [1,2,3,4,5]
    second = [6,7,8,9,10]
    three=[]
    
    for i in range(0,5):
        three.append(first[i]+second[i])
    
    print(three)
    
  17. ==============================

    17.이 방법을 사용할 수는 있지만 두 목록의 크기가 같은 경우에만 작동합니다.

    이 방법을 사용할 수는 있지만 두 목록의 크기가 같은 경우에만 작동합니다.

    first = [1, 2, 3, 4, 5]
    second = [6, 7, 8, 9, 10]
    third = []
    
    a = len(first)
    b = int(0)
    while True:
        x = first[b]
        y = second[b]
        ans = x + y
        third.append(ans)
        b = b + 1
        if b == a:
            break
    
    print third
    
  18. from https://stackoverflow.com/questions/14050824/add-sum-of-values-of-two-lists-into-new-list by cc-by-sa and MIT license