Sort by second element python: Have you mastered basic programming topics of java and looking forward to mastering advanced topics in a java programming language? Go with these ultimate Advanced java programs examples with output & achieve your goal in improving java coding skills.
Given list of lists which contain two elements in every sub list , the task is to sort the lists according to the second element in sub list.
Examples:
Example1:
Input:
given nested list =[['hello', 11], ['this', 1], ['is', 23], ['btechgeeks', 19], ['online', 39], ['platform', 7], ['for', 29]]
Output:
printing the sorted nested list before sorting : [['hello', 11], ['this', 1], ['is', 23], ['btechgeeks', 19], ['online', 39], ['platform', 7], ['for', 29]] printing the sorted nested list after sorting : [['this', 1], ['platform', 7], ['hello', 11], ['btechgeeks', 19], ['is', 23], ['for', 29], ['online', 39]]
Example2:
Input:
[['hello', 46], ['this', 31], ['morning', 29], ['is', 26], ['btechGeeks', 19], ['online', 33]]
Output:
printing the sorted nested list before sorting : [['hello', 46], ['this', 31], ['morning', 29], ['is', 26], ['btechGeeks', 19], ['online', 33]] printing the sorted nested list after sorting : [['btechGeeks', 19], ['is', 26], ['morning', 29], ['this', 31], ['online', 33], ['hello', 46]]
Example3:
Input:
[['sky', 12], ['is', 39], ['blue', 5]]
Output:
printing the sorted nested list before sorting : [['sky', 12], ['is', 39], ['blue', 5]] printing the sorted nested list after sorting : [['blue', 5], ['sky', 12], ['is', 39]]
- Java Program to Sort the elements of a Matrix
- Java LinkedList sort() Method with Examples
- Lists in Python: How to create a list in Python
Program to Sort the List According to the Second Element in Sub list in Python
Python sublist: Below are the ways to sort the given list of lists according to the second element in sub list in python some of them are:
- Using nested loops and temporary variable(Static Input)
- Using nested loops and temporary variable(User Input)
Method #1: Using nested loops and temporary variable(Static Input)
Approach:
- Take in a list that contains sublists as static input.
- Using two for loops, sort the sublists using bubble sort based on the second value of the sublist.
- If the second element of the first sublist is greater than the second element of the second sublist, the complete sublist should be exchanged/swapped.
- The sorted list should be printed.
- Exit of program.
Below is the implementation:
# Take in a list that contains sublists as static input. nestedList = [['hello', 46], ['this', 31], ['morning', 29], ['is', 26], ['btechGeeks', 19], ['online', 33]] # printing the sorted nested list before sorting print('printing the sorted nested list before sorting :') print(nestedList) # Using two for loops, sort the sublists using bubble # sort based on the second value of the sublist. for m in range(len(nestedList)): for n in range(len(nestedList)-m-1): # If the second element of the first sublist is greater than the second element of the second sublist, # the complete sublist should be exchanged/swapped using temporary variable if(nestedList[n][1] > nestedList[n+1][1]): tempo = nestedList[n] nestedList[n] = nestedList[n+1] nestedList[n+1] = tempo # printing the sorted nested list after sorting print('printing the sorted nested list after sorting :') print(nestedList)
Output:
printing the sorted nested list before sorting : [['hello', 46], ['this', 31], ['morning', 29], ['is', 26], ['btechGeeks', 19], ['online', 33]] printing the sorted nested list after sorting : [['btechGeeks', 19], ['is', 26], ['morning', 29], ['this', 31], ['online', 33], ['hello', 46]]
Method #2: Using nested loops and temporary variable(User Input)
Approach:
- Take a empty list.
- Scan the number of elements /number of sublists as user input using int(input()) function.
- Loop from 1 to given number of elements times using for loop.
- Scan the list elements using input() and int(input()) functions and append to the empty list using append() function.
- Using two for loops, sort the sublists using bubble sort based on the second value of the sublist.
- If the second element of the first sublist is greater than the second element of the second sublist, the complete sublist should be exchanged/swapped.
- The sorted list should be printed.
- Exit of program.
Below is the implementation:
# Take a empty list. nestedList = [] # Scan the number of elements /number of sublists as user input using int(input()) function. totalsublists = int(input('Enter some random number of sublists =')) # Loop from 1 to given number of elements times using for loop. for r in range(totalsublists): # Scan the list elements using input() and int(input()) functions and append # to the empty list using append() function. firsteleme = input('Enter some random first element =') secondeleme = int(input('Enter some random second element =')) nestedList.append([firsteleme, secondeleme]) # printing the sorted nested list before sorting print('printing the sorted nested list before sorting :') print(nestedList) # Using two for loops, sort the sublists using bubble # sort based on the second value of the sublist. for m in range(len(nestedList)): for n in range(len(nestedList)-m-1): # If the second element of the first sublist is greater than the second element of the second sublist, # the complete sublist should be exchanged/swapped using temporary variable if(nestedList[n][1] > nestedList[n+1][1]): tempo = nestedList[n] nestedList[n] = nestedList[n+1] nestedList[n+1] = tempo # printing the sorted nested list after sorting print('printing the sorted nested list after sorting :') print(nestedList)
Output:
Enter some random number of sublists =7 Enter some random first element =hello Enter some random second element =11 Enter some random first element =this Enter some random second element =1 Enter some random first element =is Enter some random second element =23 Enter some random first element =btechgeeks Enter some random second element =19 Enter some random first element =online Enter some random second element =39 Enter some random first element =platform Enter some random second element =7 Enter some random first element =for Enter some random second element =29 printing the sorted nested list before sorting : [['hello', 11], ['this', 1], ['is', 23], ['btechgeeks', 19], ['online', 39], ['platform', 7], ['for', 29]] printing the sorted nested list after sorting : [['this', 1], ['platform', 7], ['hello', 11], ['btechgeeks', 19], ['is', 23], ['for', 29], ['online', 39]]
Explanation:
- The user must enter a list with numerous sublists.
- Scan the list elements using input() and int(input()) functions and append to the empty list using append() function.
- The list is then sorted using bubble sort based on the second member in the sublist.
- The entire sublist is switched if the second element of the first sublist is bigger than the second element of the second sublist.
- This step is repeated until the full list has been sorted.
- After that, the sorted list is printed.
Related Programs:
- Insertion Sort in Python
- Bubble Sort in Python
- Python Program to Sort a List of Tuples in Increasing Order by the Last Element in Each Tuple
- Python Program to Form an Integer that has the Number of Digits at Ten’s Place and the Least Significant Digit of the Entered Integer at One’s Place
- Python Program to Sort a List According to the Length of the Elements