Select Page

Python lexicographic order

Before we discuss the lexicographic order in Python, we should understandwhat is lexicographic order and sort according to lexicographic order.

### Lexicographic order

In mathematics, the generalization of the alphabetical order of the dictionaries to sequences of ordered elements or, more generally, we can say that symbols of an ordered set are called the lexicographic order. Hence, lexicographic order is commonly known as dictionary order or lexical order.

### Lexicographic order in Python

In Python, we sort alphabets, words, or strings according to many sorting orders to get the required sorted data in the output. We can sort all these data elements by lexicographic order as well, and we can also sort numbers & symbols with lexicographic order in Python.

In this tutorial, we will sort strings, numbers, words, and lists in lexical order. We will design a program for sorting each type and working of the program.

### Sorting words in lexicographic order

As we have already mentioned that, the lexicographic order is also known as dictionary order. We will arrange words first by their first letter while sorting them according to lexicographic order. We can perform this sorting with two functions, i.e., sort() and sorted().

The only difference between these two functions is that sort() function changes the original array into a sorted array, whereas the sorted() function creates a new sorted array.

Now, look at the following examples:

Example 1: Sorting words in lexicographic order with sort() function:

Output:

Example 2: Using sorted() function to sort words in lexicographic order:

Output:

We can see the difference in the working of both functions. When we use sorted() function, the original array remains unaffected, whereas when we are using sort() function, the original array itself changes into a sorted array.

### Sorting a string with lexicographic order

In Python, sorting a string in lexicographic order is very similar to sorting words in the same order. However, when we use the lexicographic order on a string, the words present in the string changes into a dictionary or lexicographic order.

Here, we will use the split() function and then sort() function to sort the words of the string in lexicographic order and then print them in the output.

Look at the following example program:

Example – 1

Output:

Using lexicographic order to sort a given set of numbers

Now, we will sort a given set of numbers according to lexicographic order. If we have a given set of numbers, Let’s say (1, 2, 5, 13), then it will be sorted as (1, 13, 2, 5) in lexicographic order.

In the following example, we will take lower and upper range of numbers from user and then we will sort these numbers in the lexicographical order:

Output:

### Sorting Python lists in lexicographic order

When we use the lexicographical order on a given set of Python lists, the lists are printed sorted according to the dictionary order. Then they sort according to their length (element present in them).

We will use the following two methods to sort Python lists in lexicographic order:

Method 1: Using sort() function twice to sort lists:

Output:

Method 2: Using lambda function to sort lists with lexicographic order:

Output: