Hướng dẫn can we sort list of dictionary in python? - chúng ta có thể sắp xếp danh sách từ điển trong python không?
Xem thảo luận Show
Cải thiện bài viết Lưu bài viết Xem thảo luận Cải thiện bài viết Lưu bài viết Đọchow to sort a dictionary by value in Python. Bàn luận Trong bài viết này, chúng tôi sẽ đề cập đến cách sắp xếp từ điển theo giá trị trong Python. & NBSP; Sắp xếp luôn là một tiện ích hữu ích trong lập trình hàng ngày. Từ điển trong Python được sử dụng rộng rãi trong nhiều ứng dụng từ miền cạnh tranh đến miền nhà phát triển (ví dụ: xử lý dữ liệu JSON). Có kiến thức để sắp xếp từ điển theo giá trị của họ có thể chứng minh hữu ích trong những trường hợp như vậy.Có 2 cách để đạt được sự sắp xếp này:sorted()” inbuilt function. Various variations can also be achieved for sorting the dictionaries.
Example: Python3Đối với thứ tự giảm dần: Sử dụng Reverse Reversion = true, ngoài hàm Sắp xếp (). 9 0 1 2 3 4 5 2 7 8Để sắp xếp W.R.T nhiều giá trị: tách biệt bởi dấu phẩy, đề cập đến thứ tự chính xác trong đó việc sắp xếp phải được thực hiện. 9 0 1 2Is 9 0 6 2 9 0 0 2Các 9 0 6 2 9 0 11 2Các Output: The list printed sorting by age: [{'age': 19, 'name': 'Nikhil'}, {'age': 20, 'name': 'Nandini'}, {'age': 20, 'name': 'Manjeet'}] The list printed sorting by age and name: [{'age': 19, 'name': 'Nikhil'}, {'age': 20, 'name': 'Manjeet'}, {'age': 20, 'name': 'Nandini'}] The list printed sorting by age in descending order: [{'age': 20, 'name': 'Nandini'}, {'age': 20, 'name': 'Manjeet'}, {'age': 19, 'name': 'Nikhil'}] Các Ways to sort list of dictionaries by values in Python – Using itemgetter Hàm 27 có tham số 28
Ngoài ra, bạn có thể sử dụng 29 thay vì tự xác định chức năng
Để hoàn thiện, thêm 30 để sắp xếp theo thứ tự giảm dần
wjandrea 24.9k8 Huy hiệu vàng53 Huy hiệu bạc73 Huy hiệu đồng8 gold badges53 silver badges73 bronze badges Đã trả lời ngày 16 tháng 9 năm 2008 lúc 14:39Sep 16, 2008 at 14:39
14
Để sắp xếp danh sách từ điển theo phím = 'name':
Để sắp xếp danh sách từ điển theo khóa = 'tuổi':
Cedbeu 1.82914 Huy hiệu bạc24 Huy hiệu đồng14 silver badges24 bronze badges Đã trả lời ngày 16 tháng 9 năm 2008 lúc 15:18Sep 16, 2008 at 15:18 4
31 bây giờ sẽ là những gì bạn muốn.Hoặc tốt hơn: Kể từ Python 2.4, có một đối số 32 vừa hiệu quả hơn và gọn gàng hơn:
... Lambda là, IMO, dễ hiểu hơn 29, nhưng số dặm của bạn có thể khác nhau.Đã trả lời ngày 16 tháng 9 năm 2008 lúc 14:39Sep 16, 2008 at 14:39
Pjzpjzpjz 40,7K6 Huy hiệu vàng48 Huy hiệu bạc60 Huy hiệu đồng6 gold badges48 silver badges60 bronze badges 3 Nếu bạn muốn sắp xếp danh sách theo nhiều khóa, bạn có thể làm như sau:
Nó khá hackish, vì nó dựa vào việc chuyển đổi các giá trị thành một biểu diễn chuỗi duy nhất để so sánh, nhưng nó hoạt động như mong đợi đối với các số bao gồm các số âm (mặc dù bạn sẽ cần định dạng chuỗi của mình một cách thích hợp với số 0 nếu bạn đang sử dụng số). 4 0 1'Key' được sử dụng để sắp xếp theo giá trị tùy ý và 'itemgetter' đặt giá trị đó cho thuộc tính 'tên' của mỗi mục. Đã trả lời ngày 16 tháng 9 năm 2008 lúc 14:43Sep 16, 2008 at 14:43
efotinisefotinisefotinis 14.1k5 Huy hiệu vàng31 Huy hiệu bạc36 Huy hiệu đồng5 gold badges31 silver badges36 bronze badges Tôi đoán bạn có nghĩa là: 2Điều này sẽ được sắp xếp như thế này: 3Đã trả lời ngày 16 tháng 9 năm 2008 lúc 14:36Sep 16, 2008 at 14:36
Bạn có thể sử dụng hàm so sánh tùy chỉnh hoặc bạn có thể chuyển trong một hàm tính toán khóa sắp xếp tùy chỉnh. Điều đó thường hiệu quả hơn vì khóa chỉ được tính một lần cho mỗi mục, trong khi hàm so sánh sẽ được gọi là nhiều lần hơn. Bạn có thể làm theo cách này: 4Nhưng thư viện tiêu chuẩn chứa một thói quen chung để có được các mục của các đối tượng tùy ý: 34. Vì vậy, hãy thử điều này thay thế: 5Đã trả lời ngày 16 tháng 9 năm 2008 lúc 14:52Sep 16, 2008 at 14:52
OwenowenOwen 8716 Huy hiệu bạc6 Huy hiệu Đồng6 silver badges6 bronze badges Sử dụng biến đổi Schwartzian từ Perl, 6do 7cho 8Thông tin thêm về biến đổi Perl Schwartzian:
1 Bạn phải thực hiện chức năng so sánh của riêng bạn sẽ so sánh các từ điển bằng các giá trị của các khóa tên. Xem Sắp xếp Mini-How từ Pythoninfo Wiki Đã trả lời ngày 16 tháng 9 năm 2008 lúc 14:31Sep 16, 2008 at 14:31
MateJMateJMatej 5,8402 Huy hiệu vàng27 Huy hiệu bạc27 Huy hiệu đồng2 gold badges27 silver badges27 bronze badges 2 Đôi khi chúng ta cần sử dụng 35. Ví dụ, 91 Sử dụng gói Pandas là một phương pháp khác, mặc dù thời gian chạy của nó ở quy mô lớn chậm hơn nhiều so với các phương pháp truyền thống hơn được đề xuất bởi những người khác: 0Dưới đây là một số giá trị điểm chuẩn cho một danh sách nhỏ và danh sách các dicts lớn (100k+): 12 Dưới đây là giải pháp chung thay thế - nó sắp xếp các yếu tố của một dict bằng các khóa và giá trị. Ưu điểm của nó - không cần chỉ định các khóa và nó vẫn hoạt động nếu một số khóa bị thiếu trong một số từ điển. 21 Nếu bạn không cần 8 gốc của 37, bạn có thể sửa đổi nó tại chỗ bằng phương thức 38 bằng cách sử dụng chức năng khóa tùy chỉnh.Chức năng chính: 3 8 sẽ được sắp xếp: 4Sắp xếp nó tại chỗ: 5Nếu bạn cần 8 ban đầu, hãy gọi hàm 27 chuyển nó là 8 và chức năng chính, sau đó gán 8 được trả về cho một biến mới: 6In ấn 44 và 45. 7Giả sử tôi có một từ điển 46 với các yếu tố dưới đây. Để sắp xếp, chỉ cần sử dụng đối số chính trong 5 để chuyển chức năng tùy chỉnh như dưới đây: 8Kiểm tra điều này. Tôi đã là một fan hâm mộ lớn của một bộ lọc với Lambda. Tuy nhiên, nó không phải là lựa chọn tốt nhất nếu bạn xem xét độ phức tạp về thời gian. Lựa chọn đầu tiên 9Sự lựa chọn thứ hai 0So sánh nhanh thời gian thực hiện 1
2
Nếu hiệu suất là một mối quan tâm, tôi sẽ sử dụng 29 thay vì 0 vì các hàm tích hợp thực hiện nhanh hơn các hàm được làm thủ công. Hàm 34 dường như hoạt động nhanh hơn khoảng 20% so với 0 dựa trên thử nghiệm của tôi.Từ https://wiki.python.org/moin/pythonspeed:
Dưới đây là so sánh tốc độ sắp xếp bằng cách sử dụng 0 so với 34. 3Cả hai kỹ thuật đều sắp xếp danh sách theo cùng một thứ tự (được xác minh bằng cách thực hiện câu lệnh cuối cùng trong khối mã), nhưng cái đầu tiên nhanh hơn một chút. Như được chỉ ra bởi @claudiu cho @monojohnny trong phần bình luận của câu trả lời này, đã cho: 4Để sắp xếp danh sách từ điển theo khóa 2, 03 (như trong câu lệnh SQL 56), bạn có thể sử dụng:(like in SQL statement 56), you can use: 5Hoặc, tương tự như vậy 6 57
Sắp xếp theo nhiều cột, trong khi theo thứ tự giảm dần trên một số trong số chúng: mảng CMPS toàn cầu với hàm CMP, chứa tên trường và inv == -1 cho desc 1 cho ASC 7
Bạn có thể sắp xếp một danh sách các từ điển không?Để sắp xếp một danh sách các từ điển theo giá trị của khóa cụ thể, chỉ định tham số khóa của phương thức Sắp xếp () hoặc hàm Sắp xếp (). Bằng cách chỉ định một hàm được áp dụng cho từng phần tử của danh sách, nó được sắp xếp theo kết quả của hàm đó.specify the key parameter of the sort() method or the sorted() function. By specifying a function to be applied to each element of the list, it is sorted according to the result of that function.
Làm cách nào để sắp xếp nhiều từ điển trong Python?Giải pháp: Bạn có hai cách chính để thực hiện điều này cả hai đều dựa trên việc xác định chức năng chính của các phương thức sắp xếp của Python.Hàm chính ánh xạ từng phần tử danh sách (trong trường hợp của chúng tôi là từ điển) đến một giá trị duy nhất có thể được sử dụng làm cơ sở so sánh.Sử dụng chức năng Lambda làm chức năng chính để sắp xếp danh sách từ điển.Use a lambda function as key function to sort the list of dictionaries.
Bạn có thể sắp xếp một danh sách trong Python không?Phương thức Sort () là một trong những cách bạn có thể sắp xếp một danh sách trong Python.Khi sử dụng Sort (), bạn sắp xếp một danh sách tại chỗ.Điều này có nghĩa là danh sách ban đầu được sửa đổi trực tiếp.Đặc biệt, thứ tự ban đầu của các yếu tố bị thay đổi.. When using sort() , you sort a list in-place. This means that the original list is directly modified. Specifially, the original order of elements is altered.
Từ điển có lưu trữ dữ liệu theo thứ tự được sắp xếp không?Từ điển là một cấu trúc dữ liệu quan trọng lưu trữ dữ liệu bằng cách ánh xạ các khóa với các giá trị.Các từ điển mặc định trong Python là các cấu trúc dữ liệu không được đặt hàng.Giống như danh sách, chúng ta có thể sử dụng hàm Sắp xếp () để sắp xếp từ điển theo các khóa.Tuy nhiên, nó sẽ chỉ trả về một danh sách các khóa được sắp xếp, thường không phải là những gì chúng ta mong muốn.we can use the sorted() function to sort the dictionary by keys. However, it will only return a list of sorted keys, which is usually not what we desire. |