Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Tut] How to Sort Words Alphabetically in Python?
1
How to Sort Words Alphabetically in Python?

5/5 – (1 vote)

Problem Formulation and Solution Overview

In this article, you’ll learn how to sort words alphabetically in Python.

To make it more fun, we have the following running scenario:

Some English sayings, also known as Tongue-Twisters, are fun to try and say quickly. They are also used to improve non-English speaking individuals and small children’s fluency and pronunciation of the English language.

Imagine how challenging tongue twisters would be if sorted in alphabetical order!

[Image: 1f4ac.png] Question: How would we write code to sort a string in alphabetical order?

We can accomplish this task by one of the following options:

Method 1: Use split() and sort()

This method uses Python’s built-in
Code:
string
library to reference
Code:
split()
and
Code:
sort()
to display the words in ascending alphabetical order.

Code:
twister = 'how much wood would a woodchuck chuck if a woodchuck could chuck wood?'.lower().split() twister.sort() print(twister)

Above declares a tongue twister, converts the entire string to lowercase (
Code:
lower()
) and breaks it apart (
Code:
split()
) by default, on the space (
Code:
' '
) character. The results save to
Code:
twister
in a
Code:
List
format. If output to the terminal, the following displays.

Code:
['How', 'much', 'wood', 'would', 'a', 'woodchuck', 'chuck', 'if', 'a', 'woodchuck', 'could', 'chuck', 'wood?']

The following line sorts twister (
Code:
sort()
) in ascending alphabetical order. If output to the terminal, the following would display.

Code:
['a', 'a', 'chuck', 'chuck', 'could', 'how', 'if', 'much', 'wood', 'wood?', 'woodchuck', 'woodchuck', 'would']

[Image: lyteCache.php?origThumbUrl=https%3A%2F%2...efault.jpg]

Method 2: Use split(), sorted() and join()

This method uses Python’s built-in
Code:
string
library to reference
Code:
split()
and
Code:
sorted()
to display the words in descending alphabetical order.

Code:
twister = 'I scream, you scream, we all scream for ice cream!'.lower() twister = ' '.join(sorted(twister.split(), reverse=True)) print(twister)

Above declares a tongue twister, then converts the string to lowercase (
Code:
lower()
). The results save to
Code:
twister
in a
Code:
List
format. If output to the terminal, the following would display.

Code:
['i', 'scream,', 'you', 'scream,', 'we', 'all', 'scream', 'for', 'ice', 'cream!']

The following line breaks it apart (
Code:
split()
) by default, on the space (
Code:
' '
) character. Then,
Code:
twister
is sorted (
Code:
sorted()
) in descending alphabetical order (
Code:
reverse=True
).

The words are combined using the
Code:
join()
function, saved to
Code:
twister
and output to the terminal.

Code:
['you', 'we', 'scream,', 'scream,', 'scream', 'ice', 'i', 'for', 'cream!', 'all']

[Image: lyteCache.php?origThumbUrl=https%3A%2F%2...efault.jpg]

Method 3: Use Bubble Sort Algorithm

This method uses the famous
Code:
Bubble Sort Algorithm
. This function accepts a
Code:
List
and loops through each element, comparing two (2) values, the current element value and the next element value. The greater element floats to the top, and the loop continues until the Listis sorted.

Code:
twister = 'Which wristwatches are Swiss wristwatches?'.lower().split() def bubblesort(lst): for passesLeft in range(len(lst)-1, 0, -1): for i in range(passesLeft): if lst[i] > lst[i + 1]: lst[i], lst[i + 1] = lst[i + 1], lst[i] return ' '.join(lst) print(bubblesort(twister))

Above declares a tongue twister, converts the entire string to lowercase (
Code:
lower()
) and breaks it apart (
Code:
split()
) by default, on the space (
Code:
' '
) character. The results save to
Code:
twister
in a
Code:
List
format. If output to the terminal, the following displays.

Code:
['which', 'wristwatches', 'are', 'swiss', 'wristwatches?']

Next, the
Code:
bubblesort()
function is declared and accepts one (1) argument, an iterable
Code:
List
. An explanation of this code is outlined above.

However, we modified the code slightly to return a new string containing the sorted
Code:
List
values.

The
Code:
bubblesort()
function is then called and passed
Code:
twister
as an argument. The results are output to the terminal.

Code:
are swiss which wristwatches wristwatches?

[Image: lyteCache.php?origThumbUrl=https%3A%2F%2...efault.jpg]

Method 4: Use sort_values()

This function imports the PandasLibrary to reference the
Code:
sort_values()
function. This function sorts column(s) in a DataFrame.

To run this code error-free, install the required library. Click here for installation instructions.

To follow along, click here to download the
Code:
finxters.csv
file. Move this file to the current working directory.

Code:
import pandas as pd df = pd.read_csv('finxters.csv', skip_blank_lines=True, usecols=['FID', 'Username', 'Rank']) rank_sort = df.sort_values(by=["Rank"], ascending=True) print(rank_sort)

Above, imports the Pandas library.

Then, the
Code:
finxter.csv
file is read in, omitting blank lines, selecting the three (3) stated columns and saving to
Code:
df
.

Next, sort is applied to the
Code:
Rank
column, which contains the words pertaining to a user’s achievement level. The DataFrame (
Code:
df
) is sorted based on this column and the results save to
Code:
rank_sort
and output to the terminal.

Below a snippet of the results displays.

|
FID |
Username |
Rank

0 |
30022145 |
wildone92 |
Authority

45 |
3002481 |
Moon_Star2 |
Authority

9 |
30022450 |
Gar_man |
Authority

4 |
30022359 |
AliceM |
Authority

24 |
3002328 |
Wall_2021 |
Authority

49 |
3002573 |
jJonesing |
Authority

47 |
3002521 |
KerrStreet |
Autodidact

[Image: lyteCache.php?origThumbUrl=https%3A%2F%2...efault.jpg]

Summary

These four (4) methods of sorting words alphabetically should give you enough information to select the best one for your coding requirements.

Good Luck & Happy Coding!

Programmer Humor – Blockchain

[Image: image-31.png][i]“Blockchains are like grappling hooks, in that it’s extremely cool when you encounter a problem for which they’re the right solution, but it happens way too rarely in real life.” source – xkcd[/i]
Reply

Users browsing this thread:
1 Guest(s)


Forum Jump: