Hướng dẫn how to get multiple max values in python - cách nhận nhiều giá trị tối đa trong python

Tôi đang cố gắng tìm ra làm thế nào tôi có thể lấy một danh sách các số nguyên và trả lại tất cả các mục trong danh sách đó vào một danh sách khác là giá trị tối đa của chúng, nhưng với chỉ mục của chúng.

Vì vậy, tôi cần có khả năng làm điều này mà không cần sử dụng liệt kê, lambda, numpy hoặc bất cứ thứ gì thuộc loại đó. Nó phải là phương pháp thực sự cơ bản cho danh sách. Về cơ bản, những thứ như phụ lục, tối đa, vv. . Nếu đối với các tuyên bố cũng tốt.

Để làm rõ những gì tôi đang cố gắng làm, nói rằng tôi có một danh sách: In [30]: [i for i, x in enumerate(a) if x == max(a)] Out[30]: [1, 5] 0 Tôi muốn nó trở lại In [30]: [i for i, x in enumerate(a) if x == max(a)] Out[30]: [1, 5] 1

hỏi ngày 19 tháng 2 năm 2014 lúc 22:21Feb 19, 2014 at 22:21

1

Cách tiếp cận đơn giản nhất:

in [24]: a = [4, 34, 0, 0, 6, 34, 1] In [25]: j=0 In [26]: M=[] In [27]: m = max(a) In [28]: for i in a: if i==m: M.append(j) j+=1 ....: In [29]: M Out[29]: [1, 5]

Sử dụng danh sách tổng hợp và liệt kê, những điều trên có thể được rút ngắn thành:

In [30]: [i for i, x in enumerate(a) if x == max(a)] Out[30]: [1, 5]

Đã trả lời ngày 19 tháng 2 năm 2014 lúc 22:38Feb 19, 2014 at 22:38

Fredrik Pihlfredrik PihlFredrik Pihl

43,6K7 Huy hiệu vàng82 Huy hiệu bạc130 Huy hiệu đồng7 gold badges82 silver badges130 bronze badges

1

Cách tiếp cận "hoàn toàn thủ công", sử dụng không có chức năng thư viện tiêu chuẩn đáng sợ đó:

def get_max_indices(vals): maxval = None index = 0 indices = [] while True: try: val = vals[index] except IndexError: return indices else: if maxval is None or val > maxval: indices = [index] maxval = val elif val == maxval: indices.append(index) index = index + 1

Những gì nó mất trong ngắn gọn, nó đạt được trong ... không nhiều.

Đã trả lời ngày 19 tháng 2 năm 2014 lúc 23:12Feb 19, 2014 at 23:12

Jonrsharpejonrsharpejonrsharpe

Huy hiệu vàng 111K2525 gold badges217 silver badges403 bronze badges

Có những cách tốt hơn, nhưng nếu bạn thực sự muốn làm cho nó khó khăn ..

max_val = max(funny_list) i = 0 ind = [] for val in funny_list: if val == max_val: ind.append(i) i = i + 1

Jonrsharpe

Huy hiệu vàng 111K2525 gold badges217 silver badges403 bronze badges

Có những cách tốt hơn, nhưng nếu bạn thực sự muốn làm cho nó khó khăn ..Feb 19, 2014 at 22:37

Jonrsharperokuingh

Đã trả lời ngày 19 tháng 2 năm 2014 lúc 22:372 silver badges10 bronze badges

5

Giới thiệu

Trong hướng dẫn này, chúng tôi sẽ hiểu việc sử dụng phương thức Python Max (). Về cơ bản, phương thức Python In [30]: [i for i, x in enumerate(a) if x == max(a)] Out[30]: [1, 5] 2 trả về giá trị tối đa trong số các giá trị được truyền hoặc các phần tử của điều đó được thông qua.the Python max() method. Basically, the Python In [30]: [i for i, x in enumerate(a) if x == max(a)] Out[30]: [1, 5] 2 method returns the maximum value among the set of passed values or the elements of the passed iterable.

Dưới đây là cú pháp sử dụng phương pháp Python In [30]: [i for i, x in enumerate(a) if x == max(a)] Out[30]: [1, 5] 2 để tìm giá trị lớn nhất trong một điều khác nhau, có thểiterable,

max(iterable, *[, key, default])

Here,

  • Có thể đi được là đối tượng chứa các giá trị mà lớn nhất sẽ được tìm thấy, is the object that contains the values for which the largest is to be found,
  • Chính chỉ định chức năng đặt hàng một đối số, specifies the one-argument ordering function,
  • Và mặc định là giá trị mặc định được trả về bởi phương thức nếu số lượng được thông qua là trống.default is the default value returned by the method if the passed iterable is empty.

Để tìm kiếm lớn nhất trong số hai hoặc nhiều giá trị được thông qua làm đối số,

max(arg1, arg2, *args[, key])

Here,

  • Arg1, Arg2, Vang. Argn là các giá trị n trong số đó, phương thức In [30]: [i for i, x in enumerate(a) if x == max(a)] Out[30]: [1, 5] 2 sẽ trả về giá trị lớn nhất,, …. argn are n values among which, the In [30]: [i for i, x in enumerate(a) if x == max(a)] Out[30]: [1, 5] 2 method would return the largest value,
  • Và khóa một lần nữa là chức năng đặt hàng.

Làm việc với phương thức Python Max ()

Chúng ta có thể sử dụng phương pháp In [30]: [i for i, x in enumerate(a) if x == max(a)] Out[30]: [1, 5] 2 theo nhiều cách khác nhau để tìm mức tối đa hoặc lớn nhất của một điều đáng tin cậy hoặc cho hai hoặc nhiều đối số.

Hãy cho chúng tôi xem phương thức hoạt động như thế nào với một đối tượng có thể lặp lại, hai hoặc nhiều giá trị, với chức năng khóa được chỉ định và cho nhiều đối tượng có thể lặp lại được truyền dưới dạng đối số.

Với đối tượng khác

Ví dụ dưới đây, chúng tôi xem xét một danh sách với một số giá trị trong đó chúng tôi sẽ tìm ra yếu tố lớn nhất. Nhìn vào mã được đưa ra dưới đây một cách cẩn thận.list with some values in it for which we are to find the largest element. Look at the code given below carefully.

#initialisation of list list1 = [ 1,3,4,7,0,4,8,2 ] #finding max element print("max value is : ", max(list1,default=0))

Output::

Như chúng ta có thể thấy, đối với mã trên, chúng tôi khởi tạo danh sách, In [30]: [i for i, x in enumerate(a) if x == max(a)] Out[30]: [1, 5] 6 và trực tiếp chuyển nó sang phương thức In [30]: [i for i, x in enumerate(a) if x == max(a)] Out[30]: [1, 5] 2 với giá trị mặc định được đặt thành 0. Hàm trả về 8 vì nó là giá trị lớn nhất.0. The function returns 8 as it is the largest value.

Nếu danh sách trống, hàm sẽ vượt qua giá trị mặc định, đó là 0.empty, the function would have passed the default value, which is 0.

Chuyển hai hoặc nhiều giá trị cho phương thức Python Max ()

Khi hai hoặc nhiều giá trị được chuyển sang phương thức In [30]: [i for i, x in enumerate(a) if x == max(a)] Out[30]: [1, 5] 2, nó sẽ trả về tối đa hoặc lớn nhất trong số đó. Những đối số này có thể là số nguyên, giá trị điểm nổi, ký tự hoặc thậm chí là chuỗi.

Chúng ta hãy lấy một ví dụ,

print("max value is : ", max(6,1,73,6,38))

Output::

Như mong muốn, chúng tôi nhận được giá trị tối đa, 73.73.

Với chức năng chính

Như chúng tôi đã đề cập trước đó, khóa là hàm đặt hàng một lót trên cơ sở giá trị tối đa trong số một tập hợp các giá trị sẽ được tìm thấy.

Ví dụ: nếu chúng ta muốn tìm một tuple từ một danh sách các bộ dữ liệu, có giá trị lớn nhất của phần tử thứ 2. Hãy cho chúng tôi xem làm thế nào chúng ta có thể làm điều đó.list of tuples, which has the largest value of the 2nd element. Let us see how we can do that.

#initialisation of variables list1 = [(9,2,7), (6,8,4), (3,5,1)] def f(tuple_1): return tuple_1[1] print("max : ", max(list1, key=f))

Output::

Ở đây, In [30]: [i for i, x in enumerate(a) if x == max(a)] Out[30]: [1, 5] 9 là một chức năng do người dùng xác định, trả về phần tử thứ 2 của tuple đã qua. Chuyển chức năng này như một khóa cho phương pháp In [30]: [i for i, x in enumerate(a) if x == max(a)] Out[30]: [1, 5] 2 đảm bảo rằng một bộ được trả về với phần tử thứ 2 lớn nhất. Ví dụ của chúng tôi, đó là (6, 8, 4).2nd element of the passed tuple. Passing this function as a key to the In [30]: [i for i, x in enumerate(a) if x == max(a)] Out[30]: [1, 5] 2 method ensures that a tuple is returned with the largest 2nd element. For our example, it is ( 6, 8, 4).

Vượt qua nhiều lần lặp như đối số

Như chúng tôi đã nêu trước đó, phương thức Python Max () cũng có thể trả về các yếu tố lớn nhất của nhiều yếu tố có thể lặp lại làm đối số. Những đối số này có thể được lặp lại như chuỗi, ký tự, tuple, danh sách hoặc vv ..

Theo mặc định, phương thức In [30]: [i for i, x in enumerate(a) if x == max(a)] Out[30]: [1, 5] 2 trả về đối tượng với phần tử 0 tối đa cho danh sách, bộ dữ liệu, v.v. và cho các chuỗi, nó so sánh ký tự đầu tiên của mỗi chuỗi được truyền.default, the In [30]: [i for i, x in enumerate(a) if x == max(a)] Out[30]: [1, 5] 2 method returns the object with the maximum 0th element for lists, tuples, etc. And for strings, it compares the first character of each string passed.

Dưới đây chúng tôi đã lấy một ví dụ cho các bộ dữ liệu. Nhìn vào mã cẩn thận.

#initialisation of variables tuple1 = (5,23,7) tuple2 = (4,1,7) tuple3 = (7,37,1) print("max : ", max(tuple1,tuple2,tuple3))

Output:

Trong ví dụ này, ba bộ dữ liệu với một số giá trị ban đầu đã được chuyển trực tiếp đến phương thức In [30]: [i for i, x in enumerate(a) if x == max(a)] Out[30]: [1, 5] 2. Trả về tuple với phần tử đầu tiên lớn nhất, tức là (7, 37, 1).three tuples with some initial values have been directly passed to the In [30]: [i for i, x in enumerate(a) if x == max(a)] Out[30]: [1, 5] 2 method. Which returns the tuple with the largest first element i.e., (7, 37, 1).

Sự kết luận

Vì vậy, trong hướng dẫn này, chúng tôi đã tìm hiểu về phương pháp Python In [30]: [i for i, x in enumerate(a) if x == max(a)] Out[30]: [1, 5] 2, việc sử dụng nó cũng như hoạt động của nó.

Xin lưu ý rằng, nếu giá trị mặc định không được đặt và một lần lặp trống được truyền được truyền dưới dạng đối số cho hàm In [30]: [i for i, x in enumerate(a) if x == max(a)] Out[30]: [1, 5] 2 sẽ tăng giá trị.default value is not set and an empty iterable is passed as arguments to the In [30]: [i for i, x in enumerate(a) if x == max(a)] Out[30]: [1, 5] 2 function raises a ValueError.

Đối với bất kỳ câu hỏi nào liên quan đến chủ đề này, vui lòng sử dụng các ý kiến ​​dưới đây.

Người giới thiệu

  • Python Max () - Tạp chí Dev Post,
  • Max () - Tài liệu Python,
  • Chức năng Python Max bằng cách sử dụng ‘Biểu thức Key và Lambda - câu hỏi Overflow Stack.

Python Max có thể trả về nhiều giá trị không?

Bạn có thể trả về nhiều giá trị từ một hàm trong Python. Để làm như vậy, hãy trả về một cấu trúc dữ liệu chứa nhiều giá trị, như một danh sách chứa số dặm để chạy mỗi tuần.. To do so, return a data structure that contains multiple values, like a list containing the number of miles to run each week.

Làm thế nào để bạn tìm thấy tối đa của nhiều biến trong Python?

Python Max ()..
Max () với các lập luận có thể lặp lại.Cú pháp tối đa ().Để tìm ra mục lớn nhất trong một điều khác, chúng tôi sử dụng cú pháp này: tối đa (có thể sử dụng được, *iterables, khóa, mặc định) tối đa) tham số.....
Max () mà không có sự khác biệt.Cú pháp tối đa ().Để tìm đối tượng lớn nhất giữa hai hoặc nhiều tham số, chúng ta có thể sử dụng cú pháp này: MAX (Arg1, Arg2, *Args, khóa).

Làm thế nào để Max () hoạt động trong Python?

Hàm python max () hàm tối đa () hàm trả về mục có giá trị cao nhất hoặc mục có giá trị cao nhất trong một số không thể điều chỉnh được.Nếu các giá trị là chuỗi, một so sánh theo thứ tự bảng chữ cái được thực hiện.returns the item with the highest value, or the item with the highest value in an iterable. If the values are strings, an alphabetically comparison is done.

Bạn có thể lấy tối đa của một danh sách trong Python không?

Trong Python, có một hàm tích hợp tối đa () bạn có thể sử dụng để tìm số lớn nhất trong danh sách.Để sử dụng nó, hãy gọi Max () trên danh sách các số.Sau đó, nó trả về số lớn nhất trong danh sách đó.there is a built-in function max() you can use to find the largest number in a list. To use it, call the max() on a list of numbers. It then returns the greatest number in that list.

Chủ đề