Để sắp xếp danh sách các bộ dữ liệu [,]
, cho count
theo thứ tự giảm dần và word
theo thứ tự bảng chữ cái
data = [
['betty', 1],
['bought', 1],
['a', 1],
['bit', 1],
['of', 1],
['butter', 2],
['but', 1],
['the', 1],
['was', 1],
['bitter', 1]]
tôi sử dụng phương pháp này
sorted[data, key=lambda tup:[-tup[1], tup[0]]]
và nó cho tôi kết quả
[['butter', 2],
['a', 1],
['betty', 1],
['bit', 1],
['bitter', 1],
['bought', 1],
['but', 1],
['of', 1],
['the', 1],
['was', 1]]
Trong hướng dẫn này, chúng tôi có một danh sách các bộ dữ liệu và chúng tôi cần sắp xếp nó theo chỉ mục sắp xếp, là thành phần thứ hai của bộ dữ liệu. Khi một danh sách các bộ dữ liệu được sắp xếp theo giá trị thứ hai, vị trí của các bộ dữ liệu trong danh sách được sắp xếp lại để các giá trị thứ hai của các bộ dữ liệu theo thứ tự tăng dần
Vì vậy, chúng tôi sẽ sắp xếp một danh sách các bộ dữ liệu với sự trợ giúp của ba phương thức. Chúng ta hãy xem các ví dụ để hiểu định dạng đầu vào-đầu ra
Danh sách đầu vào = [['shubh', 2], ['sinha', 4], ['tối nay', 8], ['học', 6]]
Danh sách kết quả = [['shubh', 2], ['sinha', 4], ['nghiên cứu', 6], ['tối nay', 8]]
Danh sách đầu vào = [[200, 6], [100, 3], [400, 12], [300, 9]]
Danh sách đầu ra = [[100, 3], [200, 6], [300, 9], [400, 12]]
Để thực hiện nhiệm vụ này, chúng ta có thể làm theo nhiều cách tiếp cận, một số cách được thảo luận bên dưới
Sử dụng phương thức sắp xếp[]
Sử dụng phương thức sorted[]
Sử dụng phương pháp tìm kiếm nhị phân
Chúng tôi sẽ thảo luận chi tiết về tất cả các phương pháp này một cách riêng biệt
Cách tiếp cận 1. Sử dụng phương thức sắp xếp[]
Python có nhiều chức năng sắp xếp tích hợp sẵn. Khi sử dụng các kỹ thuật sắp xếp, chúng ta phải cung cấp một phương thức hoán đổi phần tử thành thành viên thứ hai của bộ dữ liệu
thuật toán
- Khởi tạo danh sách Tuple
- Định nghĩa hàm Sort[For Sorting Tuple]
- Đặt khóa để sắp xếp bằng phần tử thứ hai
- Sử dụng danh sách phụ lambda
- In kết quả
Chương trình
Trong chương trình này, nội dung thực tế của bộ dữ liệu được thay đổi trong khi sắp xếp theo phương thức này. Hàm sort[] sử dụng toán tử so sánh mặc định giữa các mục để sắp xếp các thành phần của danh sách theo thứ tự tăng dần hoặc giảm dần. Thay vì sử dụng toán tử mặc định, hãy sử dụng đối số key để đặt tên hàm được sử dụng để so sánh
#tuple list
tuple = [[200, 6], [100, 3], [400, 12], [300, 9]]
print["Orignal Tuple List :" ,tuple]
#function
def Sort[tuple]:
# Sorts in Ascending order
tuple.sort[key = lambda a: a[1]]
return tuple
# printing the sorted list of tuples
print["Sorted Tuple List:" ,Sort[tuple]]
Danh sách Tuple gốc. [['shubh', 2], ['sinha', 4], ['tonight', 8], ['study', 6]]
Danh sách Tuple đã sắp xếp. [['shubh', 2], ['sinha', 4], ['học', 6], ['tối nay', 8]]
Cách tiếp cận 2. Sử dụng hàm sorted[]
Hàm Sorted[] sắp xếp một danh sách và luôn trả về một danh sách có các mục được sắp xếp mà không thay đổi thứ tự ban đầu. Trong chương trình này, chúng ta sẽ sử dụng một hàm sắp xếp tương tự như hàm sắp xếp nhưng hàm này đi kèm với ba tham số i. e. , Iterable, keys và reverse. Chúng ta hãy xem thuật toán theo mã
thuật toán
- Đang khởi tạo danh sách
- In danh sách ban đầu
- Định nghĩa hàm Sort[For Sorting Tuple]
- Đặt khóa để sắp xếp bằng phần tử thứ hai
- Sử dụng danh sách phụ lambda
- In kết quả
Chương trình
Phương thức sorted[] trả về một danh sách đã sắp xếp của đối tượng có thể lặp lại được truyền vào. Bạn có thể chọn sắp xếp kết quả theo thứ tự tăng dần hoặc giảm dần. Các số được sắp xếp theo số, trong khi các chuỗi được sắp xếp theo thứ tự bảng chữ cái
# Tuple
tuple = [[200, 6], [100, 3], [400, 12], [300, 9]]
print["Orignal List: ", tuple]
# Function to sort
def Sort[tuple]:
# reverse = None [Sorts in Ascending order]
return[sorted[tuple, key = lambda a: a[1]]]
# sorted list of tuples
print["Sorted List: ", Sort[tuple]]
Danh sách gốc. [[200, 6], [100, 3], [400, 12], [300, 9]]
Danh sách đã sắp xếp. [[100, 3], [200, 6], [300, 9], [400, 12]]
Cách tiếp cận 3. Sử dụng hoạt động tìm kiếm nhị phân
Chúng tôi có một danh sách các bộ dữ liệu trong chương trình của mình và chúng tôi cần sắp xếp nó theo chỉ mục sắp xếp, đây là mục thứ hai trong bộ dữ liệu. Chúng tôi sẽ sử dụng hiệu quả một phương pháp sắp xếp, ngoại trừ thay vì sử dụng giá trị đầu tiên của danh sách, chúng tôi sẽ sử dụng thành viên thứ hai của tuple
thuật toán
- Đang khởi tạo danh sách
- In danh sách ban đầu
- Xác định độ dài của danh sách tuple
- Sắp xếp bằng hàm nhị phân
- In kết quả
Chương trình
Trong chương trình này, việc sắp xếp được thực hiện bằng phương pháp sắp xếp nhị phân. Thành viên thứ hai của bộ dữ liệu sẽ được sử dụng làm chỉ mục để sắp xếp danh sách
# Creating a new tuple
tuple = [['shubh', 2], ['sinha', 4], ['tonight', 8], ['study', 6]]
print["Orignal list : ", str[tuple]]
# Sorting the list of tuples using second item
Len = len[tuple]
for i in range[0, Len]:
for j in range[0, [Len - i - 1]]:
if[tuple[j][1] > tuple[j+1][1]]:
temp = tuple[j]
tuple[j] = tuple[j+1]
tuple[j+1] = temp
# sorted list
print["Sorted List : ", str[tuple]]
Danh sách gốc. [['shubh', 2], ['sinha', 4], ['tonight', 8], ['study', 6]]
Danh sách đã sắp xếp. [['shubh', 2], ['sinha', 4], ['học', 6], ['tối nay', 8]]
Phần kết luận
Trong hướng dẫn này, chúng ta đã thấy hai cách tiếp cận để sắp xếp một danh sách các bộ dữ liệu theo Mục thứ hai. Cách tiếp cận đầu tiên là sử dụng phương thức sort[] để sắp xếp một danh sách và luôn trả về một danh sách có các mục được sắp xếp mà không thay đổi thứ tự ban đầu và cách tiếp cận thứ hai là sử dụng một phương thức đã sắp xếp tương tự như phương thức sắp xếp và phương thức cuối cùng