×

Python Lexicographic Order

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:

 # Define an array with words
 Original_Array = ["Python", "Julia", "Go", "MATLAB", "SPSS", "R", "C"]
 # Printing original array
 print ("The original array: ",Original_Array)
 # sorting words in dictionary order
 Original_Array.sort()
 # printing original array after sorting
 print ("Sorted array: ",Original_Array) 

Output:

 The original array:  ['Python', 'Julia', 'Go', 'MATLAB', 'SPSS', 'R', 'C']
 Sorted array:  ['C', 'Go', 'Julia', 'MATLAB', 'Python', 'R', 'SPSS'] 

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

 # Define an array with words
 Original_Array = ["Python", "Julia", "Go", "MATLAB", "SPSS", "R", "C"]
 # using sorted() function to sort words of array
 Sorted_Array = sorted(Original_Array)
 # printing sorted array
 print ("Sorted array: ",Sorted_Array)
 # now printing original array
 print ("The original array: ",Original_Array) 

Output:

 Sorted array:  ['C', 'Go', 'Julia', 'MATLAB', 'Python', 'R', 'SPSS']
 The original array:  ['Python', 'Julia', 'Go', 'MATLAB', 'SPSS', 'R', 'C'] 

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

 # Default lexical sorting function
 def LexicalSorting(Orig_str):
 # using split() function
     WordOfString = Orig_str.split()
 # using sort() function
     WordOfString.sort()
   # printing string in sorted words
     for a in WordOfString:
         print ( a )
 if __name__ == '__main__':
 # define a string
     Orig_str = "This is an example string to be sorted in the program"
 # Printing original string
     print ("Original string: ",Orig_str)
     # Calling out sorting function
     print ("Sorted string words: ")
     LexicalSorting(Orig_str) 

Output:

 Original string:  This is an example string to be sorted in the program
 Sorted string words:
 This
 an
 be
 example
 in
 is
 program
 sorted
 string
 the
 to 

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:

 # default lexicographic sorting function
 def LexoSort(lef, righ):
     SortSet = []
     for a in range(lef, righ + 1):
         SortSet.append(str(a))
     SortSet.sort()
     answer = []
     for a in range(len(SortSet)):
         answer.append(int(SortSet[a]))
     for a in range(len(SortSet)):
         print (answer[a], end = " ") # printing sorted numbers
 if __name__ == "__main__":
     # taking ranges from user
     lef = int (input ("Enter the left range number for the range of numbers: "))
     righ = int (input ("Enter the left range number for the range of numbers: "))
     # calling out sorting function
     print ("Sorted numbers from the given range: ")
     LexoSort(lef, righ) 

Output:

 Enter the left range number for the range of numbers: 7
 Enter the left range number for the range of numbers: 31
 Sorted numbers from the given range:
 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 7 8 9 

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:

 # initializing a group of lists 
 GroupofLists = [[1, 4, 3, 2, 7], [5, 4, 1, 3], [1, 4, 6, 7, 2, 6], [9, 8, 7], [1, 9, 3,.7]]
 # printing unsorted list
 print ("Unsorted lists : " + str(GroupofLists))
 # Sorting lists with sort() twice
 GroupofLists.sort()
 GroupofLists.sort(key = len)
 # printing sorted lists
 print ("Sorted lists after sorting them by dictionary order and their length " + str(GroupofLists)) 

Output:

 Unsorted lists : [[1, 4, 3, 2, 7], [5, 4, 1, 3], [1, 4, 6, 7, 2, 6], [9, 8, 7], [1, 9, 3, 0.7]]
 Sorted lists after sorting them by dictionary order and their length [[9, 8, 7], [1, 9, 3, 0.7], [5, 4, 1, 3], [1, 4, 3, 2, 7], [1, 4, 6, 7, 2, 6]] 

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

 # initializing a group of lists 
 GroupofLists = [[1, 4, 3, 2, 7], [5, 4, 1, 3], [1, 4, 6, 7, 2, 6], [9, 8, 7], [1, 9, 3,.7]]
 # printing unsorted list
 print ("Unsorted lists : " + str(GroupofLists))
 # using lambda function to sort lists
 SortedLists = sorted(GroupofLists, key = lambda a: (len(a), a))
 # printing sorted lists
 print ("Sorted lists after sorting them by dictionary order and their length " + str(SortedLists)) 

Output:

 Unsorted lists : [[1, 4, 3, 2, 7], [5, 4, 1, 3], [1, 4, 6, 7, 2, 6], [9, 8, 7], [1, 9, 3, 0.7]]
 Sorted lists after sorting them by dictionary order and their length [[9, 8, 7], [1, 9, 3, 0.7], [5, 4, 1, 3], [1, 4, 3, 2, 7], [1, 4, 6, 7, 2, 6]] 

Related Topics

Class and Static Methods in Python

The method is an important concept to learn for every programmer or data analyst. We know that in OOP's concept, each object has its attributes and behaviors defined through methods....

3 minutes read.

Python Printf Style Formating

String objects have one special implicit activity: the % administrator (modulo). This is otherwise called the string designing or interjection administrator. Given design % values (where configuration is a string),...

3 minutes read.

Bar Plot in Python

A bar chart or bar graph displays categorical data using rectangular bars with heights or lengths proportionate to the values for the data distributed in the dataset. In a bar...

16 minutes read.

Python String rstrip() method

Python String rstrip() method The string.rstrip() method in Python returns a copy of the string with trailing characters removed. Syntax string.rstrip([chars]) Parameter chars:  This argument represents a string specifying the set of characters to be...

1 minute read.

How to Convert String to List In Python?

How to Convert String to List In Python? We all are familiar with what strings and lists are, let us have a quick revision on them- Strings are a sequence of characters...

4 minutes read.

Python History

Python is one of the top trending, widely-used programming languages. Python is a general-purpose programming language. Python language is known for its features. Some features are given below: SimplisticFree and open...

4 minutes read.

Difference between Perl and Python

Control and presently utilized for a great many undertakings, including framework organization, web improvement, network programming, and GUI improvement, and the sky is the limit from there. About Perl? Perl is a...

4 minutes read.

Python lock

Before understanding the concept of Python-lock we need to understand what kind if condition we require to implement the locks in Python. Let us start with multithreading and its implementation...

5 minutes read.

Python program to convert Celsius into Fahrenheit

Python program to convert Celsius into Fahrenheit This program explains how we can take the temperature in Celsius and convert them into Fahrenheit. Celsius Celsius, also known as centigrade, is a measurement unit...

1 minute read.

GUI Calendar using PyQt5 in Python

GUI: One of the most significant factors that increased the usability of computer and digital technologies for common, less tech-savvy users is likely the development and widespread adoption of GUIs. GUIs...

3 minutes read.

How to run a Program in Python

How to run a Program in Python Writing a program in Python is an easy task, beginners who are ready to kickstart their career in the world of programming can create...

3 minutes read.

FOO in Python

Python Programming Language: Python programming language is one of the most used programming languages, as it is used widely in the field of software and data analysis, web development, etc. It...

3 minutes read.

Python pynmea2

Define Pynmea2 Python Programming Language: Python is an interactive and more accessible language than any other programming language. The python programming language uses a variety of libraries to perform the operations in...

4 minutes read.

Python sorted() function

Python sorted() function The sorted() function returns a sorted list of the specified iterable object. Syntax sorted(iterable, *, key=None, reverse=False) Parameter iterable: It is a required parameter that represents the sequence to sort, list, dictionary, tuple etc. key:...

1 minute read.

Cross Entropy in Python

Introduction Cross-entropy loss is frequently combined with the softmax function. Determine the total entropy among the distributions or the cross-entropy, which is the difference between two probability distributions. For the purpose...

5 minutes read.

_dict_ in Python

An unordered collection of data values known as a dictionary can be used in Python to store data values similar to a map. Dictionaries can also store a key: value...

6 minutes read.

Iterators in Python

Introduction In Python, an iterator is defined as an object that enables traversing through all the values of a collection. It contains the countable number of values. The iterator is utilized to...

4 minutes read.

Python's Qstandarditemmodel

Python More interactive and user-friendly than any other programming language is Python. Many libraries are used by the python programming language to speed up procedures. Python can be used to develop...

3 minutes read.

Python for Loop Increment

Introduction In general, loops are employed for sequential traversal. It belongs to the definite iteration category. Definite iterations imply that the number of iterations is explicitly set in advance.  In this article,...

4 minutes read.

Python String find() method

Python String find() method The string.find() method in Python finds the first occurrence of the specified value and returns the lowest index in the string if the substring sub is found else it...

2 minutes read.