Hướng dẫn how do you sum two elements in a list in python? - làm thế nào để bạn tổng hợp hai phần tử trong một danh sách trong python?

Vấn đề chính với các giải pháp kiểm tra tất cả các cặp vợ chồng có thể (với các vòng lặp hoặc itertools.combinations) là O (n^2), vì về cơ bản bạn kiểm tra tất cả các kết hợp có thể của hai yếu tố giữa n (có n*(n-1)/ 2 Kết hợp như vậy) cho đến khi bạn tìm thấy một kết hợp hợp lệ.

Khi N lớn, bạn sẽ cần một thuật toán hiệu quả hơn. Một khả năng là trước tiên sắp xếp danh sách (đây là O (N * log (n))), tìm giải pháp sau đó có thể được thực hiện trực tiếp trong O (n), cung cấp cho bạn một giải pháp trong O (n * log (n) ).


Chúng tôi sắp xếp danh sách trước, sau đó thêm các giá trị đầu tiên (nhỏ nhất) và cuối cùng (lớn nhất). Nếu tổng quá lớn, chúng ta có thể loại bỏ giá trị lớn nhất. Nếu nó quá nhỏ, chúng tôi loại bỏ cái nhỏ nhất, cho đến khi chúng tôi đạt được tổng chính xác.

Chúng ta có thể sử dụng một bộ sưu tập.deque để loại bỏ hiệu quả các giá trị ở bất kỳ đầu nào của danh sách.

Để truy xuất các chỉ số, chúng tôi giữ chúng bên cạnh các giá trị trong các bộ dữ liệu.

from collections import deque


def find_target(values, target):

    dq = deque(sorted([(val, idx) for idx, val in enumerate(values)]))

    while True:
        if len(dq) < 2:
            raise ValueError('No match found')

        s =  dq[0][0] + dq[-1][0]

        if s > target:
            dq.pop()
        elif s < target:
            dq.popleft()  
        else:
            break
    return dq[0], dq[-1]



values = [23, 5, 55, 11, 2, 12, 26, 16]
target = 27

sol = find_target(values, target)

print(sol)
# ((11, 3), (16, 7))
# 11 + 16 == 27, indices 3 and 7

print(sol[0][1], sol[1][1])
# 3 7

Xem thảo luận

Cải thiện bài viết

Lưu bài viết

  • Đọc
  • Bàn luận
  • Xem thảo luận

    Cải thiện bài viết

    Lưu bài viết

    Đọc

    Example:    

    Bàn luận

    Đưa ra một danh sách các số, hãy viết một chương trình Python để tìm tổng của tất cả các yếu tố trong danh sách. 

    Python3

    Input: [12, 15, 3, 10]
    Output: 40
    Input: [17, 5, 3, 5]
    Output: 30

    Ví dụ #1: & nbsp;

    total =

    Input: [12, 15, 3, 10]
    Output: 40
    0

    Input: [12, 15, 3, 10]
    Output: 40
    1=
    Input: [12, 15, 3, 10]
    Output: 40
    3
    Input: [12, 15, 3, 10]
    Output: 40
    4
    Input: [12, 15, 3, 10]
    Output: 40
    5
    Input: [12, 15, 3, 10]
    Output: 40
    6
    Input: [12, 15, 3, 10]
    Output: 40
    5
    Input: [12, 15, 3, 10]
    Output: 40
    8
    Input: [12, 15, 3, 10]
    Output: 40
    5
    Input: [17, 5, 3, 5]
    Output: 30
    0__15
    Input: [17, 5, 3, 5]
    Output: 30
    223

    Sum of all elements in given list:  74
    9
    Input: [17, 5, 3, 5]
    Output: 30
    8
    Sum of all elements in given list:  74
    1
    Sum of all elements in given list:  74
    2

    Input: [17, 5, 3, 5]
    Output: 30
    4
    Input: [17, 5, 3, 5]
    Output: 30
    5
    Input: [17, 5, 3, 5]
    Output: 30
    6
    Input: [17, 5, 3, 5]
    Output: 30
    7
    Input: [17, 5, 3, 5]
    Output: 30
    8____10
    Input: [12, 15, 3, 10]
    Output: 40
    5
    Sum of all elements in given list:  74
    1
    Sum of all elements in given list:  74
    2

    Sum of all elements in given list:  74

    Sum of all elements in given list:  74
    3total = total
    Sum of all elements in given list:  74
    7
    Sum of all elements in given list:  74
    8
    Using while() loop  

    Python3

    Input: [12, 15, 3, 10]
    Output: 40
    Input: [17, 5, 3, 5]
    Output: 30

    Ví dụ #1: & nbsp;

    Ví dụ #1: & nbsp;

    Sum of all elements in given list:  74
    2
    Sum of all elements in given list:  74
    3
    Sum of all elements in given list:  74
    1
    Sum of all elements in given list:  74
    2

    Input: [12, 15, 3, 10]
    Output: 40
    1=
    Input: [12, 15, 3, 10]
    Output: 40
    3
    Input: [12, 15, 3, 10]
    Output: 40
    4
    Input: [12, 15, 3, 10]
    Output: 40
    5
    Input: [12, 15, 3, 10]
    Output: 40
    6
    Input: [12, 15, 3, 10]
    Output: 40
    5
    Input: [12, 15, 3, 10]
    Output: 40
    8
    Input: [12, 15, 3, 10]
    Output: 40
    5
    Input: [17, 5, 3, 5]
    Output: 30
    0__15
    Input: [17, 5, 3, 5]
    Output: 30
    223

    Input: [17, 5, 3, 5]
    Output: 30
    4
    Input: [17, 5, 3, 5]
    Output: 30
    5
    Input: [17, 5, 3, 5]
    Output: 30
    6
    Input: [17, 5, 3, 5]
    Output: 30
    7
    Input: [17, 5, 3, 5]
    Output: 30
    8____10
    Input: [12, 15, 3, 10]
    Output: 40
    5
    Sum of all elements in given list:  74
    1
    Sum of all elements in given list:  74
    2

    Sum of all elements in given list:  74
    9
    Input: [17, 5, 3, 5]
    Output: 30
    8
    Sum of all elements in given list:  74
    1
    Sum of all elements in given list:  74
    2

    Sum of all elements in given list:  74
    3total = total
    Sum of all elements in given list:  74
    7
    Sum of all elements in given list:  74
    8
     
     

    Sum of all elements in given list:  74

    Đầu ra Recursive way  

    Python3

    Ví dụ #1: & nbsp;

    total =

    Input: [12, 15, 3, 10]
    Output: 40
    0

    Input: [12, 15, 3, 10]
    Output: 40
    1=
    Input: [12, 15, 3, 10]
    Output: 40
    3
    Input: [12, 15, 3, 10]
    Output: 40
    4
    Input: [12, 15, 3, 10]
    Output: 40
    5
    Input: [12, 15, 3, 10]
    Output: 40
    6
    Input: [12, 15, 3, 10]
    Output: 40
    5
    Input: [12, 15, 3, 10]
    Output: 40
    8
    Input: [12, 15, 3, 10]
    Output: 40
    5
    Input: [17, 5, 3, 5]
    Output: 30
    0__15
    Input: [17, 5, 3, 5]
    Output: 30
    223

    Input: [17, 5, 3, 5]
    Output: 30
    4
    Input: [17, 5, 3, 5]
    Output: 30
    5
    Input: [17, 5, 3, 5]
    Output: 30
    6
    Input: [17, 5, 3, 5]
    Output: 30
    7
    Input: [17, 5, 3, 5]
    Output: 30
    8____10
    Input: [12, 15, 3, 10]
    Output: 40
    5
    Sum of all elements in given list:  74
    1
    Sum of all elements in given list:  74
    2

    Sum of all elements in given list:  74
    3
    Input: [12, 15, 3, 10]
    Output: 40
    09
    Input: [12, 15, 3, 10]
    Output: 40
    10

    Sum of all elements in given list:  74
    3total = total
    Sum of all elements in given list:  74
    7
    Sum of all elements in given list:  74
    8

    Đầu ra

    Sum of all elements in given list:  74
    9
    Input: [17, 5, 3, 5]
    Output: 30
    8
    Sum of all elements in given list:  74
    1
    Sum of all elements in given list:  74
    2

    Input: [17, 5, 3, 5]
    Output: 30
    4
    Input: [17, 5, 3, 5]
    Output: 30
    5
    Input: [17, 5, 3, 5]
    Output: 30
    6
    Input: [17, 5, 3, 5]
    Output: 30
    7
    Input: [17, 5, 3, 5]
    Output: 30
    8____10
    Input: [12, 15, 3, 10]
    Output: 40
    5
    Sum of all elements in given list:  74
    1
    Sum of all elements in given list:  74
    2

    Sum of all elements in given list:  74

    Sum of all elements in given list:  74
    3total = total
    Sum of all elements in given list:  74
    7
    Sum of all elements in given list:  74
    8
    Using sum() method  

    Python3

    Ví dụ #1: & nbsp;

    total =

    Input: [12, 15, 3, 10]
    Output: 40
    0

    Sum of all elements in given list:  74
    9
    Input: [17, 5, 3, 5]
    Output: 30
    8
    Sum of all elements in given list:  74
    1
    Sum of all elements in given list:  74
    2

    Output:  

    Sum of all elements in given list:  74

    Input: [12, 15, 3, 10]
    Output: 40
    1=
    Input: [12, 15, 3, 10]
    Output: 40
    3
    Input: [12, 15, 3, 10]
    Output: 40
    4
    Input: [12, 15, 3, 10]
    Output: 40
    5
    Input: [12, 15, 3, 10]
    Output: 40
    6
    Input: [12, 15, 3, 10]
    Output: 40
    5
    Input: [12, 15, 3, 10]
    Output: 40
    8
    Input: [12, 15, 3, 10]
    Output: 40
    5
    Input: [17, 5, 3, 5]
    Output: 30
    0__15
    Input: [17, 5, 3, 5]
    Output: 30
    223
    Using add() function of operator module

    Input: [17, 5, 3, 5]
    Output: 30
    4
    Input: [17, 5, 3, 5]
    Output: 30
    5
    Input: [17, 5, 3, 5]
    Output: 30
    6
    Input: [17, 5, 3, 5]
    Output: 30
    7
    Input: [17, 5, 3, 5]
    Output: 30
    8____10
    Input: [12, 15, 3, 10]
    Output: 40
    5
    Sum of all elements in given list:  74
    1
    Sum of all elements in given list:  74
    2

    Python3

    Sum of all elements in given list:  74
    3total = total
    Sum of all elements in given list:  74
    7
    Sum of all elements in given list:  74
    8

    Input: [12, 15, 3, 10]
    Output: 40
    1=
    Input: [12, 15, 3, 10]
    Output: 40
    3
    Input: [12, 15, 3, 10]
    Output: 40
    62
    Input: [12, 15, 3, 10]
    Output: 40
    5
    Input: [12, 15, 3, 10]
    Output: 40
    64
    Input: [12, 15, 3, 10]
    Output: 40
    5
    Input: [12, 15, 3, 10]
    Output: 40
    66
    Input: [12, 15, 3, 10]
    Output: 40
    5
    Input: [12, 15, 3, 10]
    Output: 40
    68
    Input: [17, 5, 3, 5]
    Output: 30
    3

    Đầu ra

    Input: [17, 5, 3, 5]
    Output: 30
    4
    Input: [12, 15, 3, 10]
    Output: 40
    74
    Input: [17, 5, 3, 5]
    Output: 30
    6
    Input: [12, 15, 3, 10]
    Output: 40
    76

    Làm thế nào để bạn tổng hợp các mục trong một danh sách trong Python?

    Sum of all elements in given list:  74
    9
    Input: [12, 15, 3, 10]
    Output: 40
    86

    Python cung cấp một tổng số hàm sẵn () tổng hợp các số trong danh sách. Cú pháp: Sum (có thể lặp lại, bắt đầu) có thể sử dụng được: Có thể là bất cứ thứ gì danh sách, bộ dữ liệu hoặc từ điển, nhưng quan trọng nhất là nó phải là số. Bắt đầu: Bắt đầu này được thêm vào tổng số số trong itable. Using enumerate function

    Python3

    Làm thế nào để bạn thêm hai số trong một danh sách?

    Thêm hai số được biểu thị bằng các danh sách được liên kết bằng cách sử dụng đường truyền tuyến tính: Traverse cả hai danh sách vào cuối và thêm các số không trước trong danh sách với các chữ số nhỏ hơn. Sau đó, gọi một hàm đệ quy trên các nút bắt đầu của cả hai danh sách tự gọi cho các nút tiếp theo của cả hai danh sách cho đến khi nó đến cuối.

    Input: [17, 5, 3, 5]
    Output: 30
    05
    Input: [17, 5, 3, 5]
    Output: 30
    06
    Sum of all elements in given list:  74
    7=
    Input: [17, 5, 3, 5]
    Output: 30
    09

    Sum of all elements in given list:  74
    9
    Input: [17, 5, 3, 5]
    Output: 30
    11

    Phương pháp 7: Sử dụng danh sách hiểu & nbsp; Using list comprehension 

    Python3

    Input: [12, 15, 3, 10]
    Output: 40
    1=
    Input: [12, 15, 3, 10]
    Output: 40
    3
    Input: [12, 15, 3, 10]
    Output: 40
    62
    Input: [12, 15, 3, 10]
    Output: 40
    5
    Input: [12, 15, 3, 10]
    Output: 40
    64
    Input: [12, 15, 3, 10]
    Output: 40
    5
    Input: [12, 15, 3, 10]
    Output: 40
    66
    Input: [12, 15, 3, 10]
    Output: 40
    5
    Input: [12, 15, 3, 10]
    Output: 40
    68
    Input: [17, 5, 3, 5]
    Output: 30
    3

    Input: [17, 5, 3, 5]
    Output: 30
    06=
    Input: [17, 5, 3, 5]
    Output: 30
    25
    Input: [17, 5, 3, 5]
    Output: 30
    4
    Input: [12, 15, 3, 10]
    Output: 40
    74
    Input: [17, 5, 3, 5]
    Output: 30
    6
    Input: [17, 5, 3, 5]
    Output: 30
    29

    Sum of all elements in given list:  74
    9
    Input: [17, 5, 3, 5]
    Output: 30
    8
    Input: [12, 15, 3, 10]
    Output: 40
    49
    Input: [17, 5, 3, 5]
    Output: 30
    33

    Phương pháp 8: Sử dụng chức năng Lambda Using lambda function

    Python3

    Input: [12, 15, 3, 10]
    Output: 40
    1=
    Input: [12, 15, 3, 10]
    Output: 40
    3
    Input: [12, 15, 3, 10]
    Output: 40
    62
    Input: [12, 15, 3, 10]
    Output: 40
    5
    Input: [12, 15, 3, 10]
    Output: 40
    64
    Input: [12, 15, 3, 10]
    Output: 40
    5
    Input: [12, 15, 3, 10]
    Output: 40
    66
    Input: [12, 15, 3, 10]
    Output: 40
    5
    Input: [12, 15, 3, 10]
    Output: 40
    68
    Input: [17, 5, 3, 5]
    Output: 30
    3

    Input: [17, 5, 3, 5]
    Output: 30
    06=
    Input: [17, 5, 3, 5]
    Output: 30
    25
    Input: [17, 5, 3, 5]
    Output: 30
    4
    Input: [12, 15, 3, 10]
    Output: 40
    74
    Input: [17, 5, 3, 5]
    Output: 30
    6
    Input: [17, 5, 3, 5]
    Output: 30
    29

    Phương pháp 8: Sử dụng chức năng Lambda

    Python3

    Các

    Phương thức: Sử dụng toán tử bổ sung & nbsp;

    Input: [12, 15, 3, 10]
    Output: 40
    57
    Input: [17, 5, 3, 5]
    Output: 30
    56

    Input: [17, 5, 3, 5]
    Output: 30
    05
    Input: [17, 5, 3, 5]
    Output: 30
    06=
    Input: [17, 5, 3, 5]
    Output: 30
    06
    Sum of all elements in given list:  74
    7
    Input: [17, 5, 3, 5]
    Output: 30
    79
    Input: [12, 15, 3, 10]
    Output: 40
    0
    Input: [17, 5, 3, 5]
    Output: 30
    81

    Sum of all elements in given list:  74
    9
    Input: [17, 5, 3, 5]
    Output: 30
    11


    Làm thế nào để bạn tổng hợp các mục trong một danh sách trong Python?

    Python cung cấp một tổng số hàm sẵn () tổng hợp các số trong danh sách. Cú pháp: Sum (có thể lặp lại, bắt đầu) có thể sử dụng được: Có thể là bất cứ thứ gì danh sách, bộ dữ liệu hoặc từ điển, nhưng quan trọng nhất là nó phải là số. Bắt đầu: Bắt đầu này được thêm vào tổng số số trong itable.sum(iterable, start) iterable : iterable can be anything list , tuples or dictionaries , but most importantly it should be numbers. start : this start is added to the sum of numbers in the iterable.

    Làm thế nào để bạn thêm hai số trong một danh sách?

    Thêm hai số được biểu thị bằng các danh sách được liên kết bằng cách sử dụng đường truyền tuyến tính: Traverse cả hai danh sách vào cuối và thêm các số không trước trong danh sách với các chữ số nhỏ hơn.Sau đó, gọi một hàm đệ quy trên các nút bắt đầu của cả hai danh sách tự gọi cho các nút tiếp theo của cả hai danh sách cho đến khi nó đến cuối.

    Bạn có thể tổng hợp một danh sách trong Python không?

    Tổng chức năng tích hợp của Python () là một cách hiệu quả và pythonic để tổng hợp một danh sách các giá trị số..

    Làm thế nào để bạn tìm thấy tổng của một danh sách sử dụng tổng trong Python?

    1) Sử dụng phương thức Sum ()..
    Ví dụ: tổng (danh sách) tổng (danh sách, bắt đầu).
    Mã ví dụ: # Python Mã để giải thích làm việc trên Sum () Phương thức # Dải danh sách số NumList = [2,4,2,5,7,9,23,4,5]của danh sách: ', numsum) # ví dụ với numsum = sum (numlist, 5) in (' tổng của danh sách: ', numsum).