Làm cách nào để tìm tổng của ba phần tử trong danh sách trong python?

Thông qua việc sử dụng ngôn ngữ lập trình, chúng ta sẽ cùng nhau giải bài toán Tổng các phần tử trong một danh sách. câu đố trong bài học này. Điều này được thể hiện trong đoạn mã sau

data = ['5', '4', '9']

sum[int[i] for i in data]
18

Như chúng ta đã thấy, vấn đề về Tổng các phần tử trong một danh sách. biến đã được giải quyết bằng cách sử dụng nhiều trường hợp riêng biệt

Làm thế nào để bạn tổng hợp tất cả các yếu tố trong một danh sách?

thuật toán

  • def sum_of_list[l]. tổng = 0. cho val trong l. tổng = tổng + val. trả về tổng. ​ my_list = [1,3,5,2,4]
  • def sum_of_list[l,n]. nếu n == 0. trả lại l[n];
  • my_list = [1,3,5,2,4] print "Tổng của my_list là", sum[my_list] Chạy

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

cú pháp

  • Thí dụ. tổng [danh sách] tổng [danh sách, bắt đầu]
  • Mã ví dụ. # Mã Python giải thích cách làm việc với phương thức sum[] # Khai báo danh sách các số numlist = [2,4,2,5,7,9,23,4,5] numsum = sum[numlist] print['Sum of List. ',numsum] # Ví dụ với start numsum = sum[numlist, 5] print['Sum of List. ',numsum]

Làm cách nào để tính tổng một phần tử danh sách trong vòng lặp for trong Python?

Phương pháp 1. Lặp qua danh sách bằng vòng lặp for

  • Khởi tạo một biến để giữ tổng của phần tử
  • Lặp lại danh sách bằng vòng lặp for và truy xuất từng phần tử của danh sách
  • Thêm phần tử này vào biến được khởi tạo ở trên
  • Sau khi lặp lại danh sách hoàn tất, biến của Bước 1 sẽ giữ tổng của các phần tử danh sách

Hàm nào sau đây được sử dụng để tìm tổng của tất cả các phần tử danh sách?

Hàm SUM cộng các giá trị. Bạn có thể thêm các giá trị riêng lẻ, tham chiếu ô hoặc phạm vi hoặc kết hợp cả ba

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

Cách tiếp cận 1

  • Tạo biến sum kiểu dữ liệu số nguyên
  • Khởi tạo tổng bằng 0
  • Bắt đầu lặp lại Danh sách bằng vòng lặp for
  • Trong quá trình lặp, thêm từng phần tử với biến tổng
  • Sau khi thực hiện vòng lặp, in tổng

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

Cách tìm tổng của hai danh sách trong Python

  • danh sách1 = [1, 2, 3]
  • danh sách2 = [4, 5, 6]
  • zipped_lists = zip[list1, list2] `zipped_lists` chứa các cặp mục từ cả hai danh sách
  • sum = [x + y for [x, y] in zipped_lists] Tạo danh sách có tổng của từng cặp
  • in [tổng]

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

Hàm tích hợp sẵn của Python sum[] là một cách hiệu quả và Pythonic để tính tổng danh sách các giá trị số. Cộng nhiều số với nhau là một bước trung gian phổ biến trong nhiều phép tính, vì vậy sum[] là một công cụ khá tiện dụng cho lập trình viên Python. 06-Oct-2021

Hàm tổng trong Python là gì?

Hàm sum[] trong Python Hàm sum[] trả về một số, tổng của tất cả các mục trong một lần lặp

Phương thức Python nào có thể tìm tổng của danh sách 1 2 3 4 5 trong một dòng mã?

Danh sách phẳng. Để tính tổng một danh sách các số trong một dòng mã Python, hãy sử dụng hàm tích hợp sẵn của Python sum[list]

Trong hướng dẫn này, chúng ta sẽ viết chương trình Python để tìm tất cả các bộ ba trong danh sách đã cho có tổng bằng 0. Chúng tôi sẽ giải quyết vấn đề này bằng các phương pháp khác nhau. Đầu tiên, hãy hiểu tuyên bố vấn đề

Báo cáo vấn đề -

Một danh sách các yếu tố riêng biệt được đưa ra;

Thí dụ -

Hãy hiểu phương pháp đầu tiên để giải quyết vấn đề này -

Phương pháp - 1. Thuật toán vét cạn

Phương pháp đơn giản này mất O[n3] lần để giải quyết vấn đề này. Trong phương pháp này, chúng tôi sẽ làm theo cách tiếp cận dưới đây -

Chúng ta sẽ chạy ba vòng lặp for và kiểm tra từng cái một xem tổng của ba phần tử có bằng 0 hay không. Nếu tổng của ba phần tử bằng 0, thì in phần tử;

Hãy hiểu đoạn mã sau

Thí dụ -

đầu ra

[[-20, 0, 20], [-20, 40, -20], [0, 20, -20], [0, 40, -40]]

Giải trình -

Trong đoạn mã trên, chúng tôi chạy ba vòng lặp for i, j và k. Vòng lặp đầu tiên chạy từ 0 đến n-2, vòng lặp for thứ hai sẽ chạy từ i+1 đến n - 1 và vòng lặp thứ ba chạy từ j+1 đến n. Bộ đếm vòng lặp chỉ định ba phần tử của bộ ba. Sau đó, ta kiểm tra tổng các phần tử tại i'th, j'th, k'th có bằng 0 hay không. Nếu điều kiện là đúng, in tổng khác tiếp tục

Phân tích độ phức tạp

  • Độ phức tạp về thời gian. Độ phức tạp thời gian là O[n3].
    Vì cần ba vòng lặp lồng nhau nên độ phức tạp về thời gian là O[n3].
  • Không gian phụ trợ. Không gian phụ là O[1].
    Vì không cần thêm dung lượng nên độ phức tạp của không gian là không đổi.

Phương pháp - 2. Sử dụng Băm

Trong phương pháp này, chúng tôi sẽ sử dụng băm để có được kết quả mong muốn. Phương pháp này hiệu quả hơn phương pháp trước vì nó cho kết quả với thời gian O[N2] ngắn hơn. Chúng tôi sẽ làm theo cách tiếp cận dưới đây -

Nó liên quan đến việc duyệt qua mảng. Đối với mọi phần tử list1[i], hãy tìm một cặp có tổng "-list1[i]". Vấn đề này rút gọn thành tổng của một cặp và có thể được giải quyết bằng cách sử dụng hàm băm trong thời gian O[n]

Hãy hiểu đoạn mã sau -

Thí dụ -

đầu ra

[[0, -20, 20], [40, -20, -20], [20, 0, -20], [40, 0, -40]]

Giải trình -

Trong đoạn mã trên, chúng tôi đã tạo hashmap để lưu trữ cặp khóa-giá trị. Sau đó, chúng tôi chạy hai vòng lặp lồng nhau; . Sau đó, chúng tôi kiểm tra tổng của các phần tử thứ i và thứ j nhân với -1 có trong hashmap hay không

Nếu phần tử có mặt trong hashmap, hãy in bộ ba;

Phân tích độ phức tạp

  • Thời gian phức tạp. Độ phức tạp thời gian là O[n2] vì chỉ cần có hai vòng lặp lồng nhau nên độ phức tạp thời gian là O[n2]
  • Không gian phụ trợ. Không gian phụ trợ là O[n] vì cần có hashmap, do đó độ phức tạp của không gian là tuyến tính

Phương pháp - 3. Sử dụng Sắp xếp

Trong phương pháp này, chúng ta sẽ sử dụng phép sắp xếp để có được kết quả phù hợp trong O[n2] lần. Hãy hiểu đoạn mã sau

Thí dụ -

đầu ra

Giải trình -

Trong đoạn mã trên, đầu tiên, chúng ta sắp xếp mảng theo thứ tự tăng dần và duyệt qua mảng từ đầu đến cuối. Với mọi chỉ số i, tạo hai biến l = l + 1 và r = n - 1. Sau đó, chúng tôi chạy một vòng lặp cho đến khi i nhỏ hơn r;

Bây giờ, chúng tôi kiểm tra xem tổng có nhỏ hơn giá trị gia tăng của l không;

Nếu tổng có ý nghĩa lớn hơn 0, thì hãy giảm giá trị của r;

Phân tích độ phức tạp

  • Thời gian phức tạp. Độ phức tạp thời gian là O[n2] vì chỉ cần có hai vòng lặp lồng nhau nên độ phức tạp thời gian là O[n2]
  • Không gian phụ trợ. Không gian phụ trợ là O[1] vì cần có một hashmap, vì vậy độ phức tạp của không gian là tuyến tính

Sự kết luận

Hướng dẫn này bao gồm các phương pháp khác nhau để tìm bộ ba. Chúng tôi cũng đã triển khai mã, giải thích hoạt động của nó và độ phức tạp về thời gian tương ứng

Chủ Đề