Examples :
Input: [’k’, 5,’ e’, 3, ’g’, 7, 0,’ t’] Output: [0, 3, 5, 7, ’e’,’ g’, ’k’,’ t’] Input: [1, ’ c’, 3, 2, ’a’,’ b’] Output: [1, 2, 3, ’a’,’ b’, ’c’]
Approach 1: Using the sort () method
To use the Python sort ()
method we need to first transform all the list values to type str . There are now two methods for converting values to a string.
- Method # 1: Understanding a List
Understanding a Python List can simply be used to convert each item in a list string type. We sort it, and since all values are now str, we change the final list to its original form.# Python3 list sorting program
# contains alphabetic and numeric values
def
sort (lst):
lst
=
[
str
(i)
for
i
in
lst]
lst.sort ()
lst
=
[
int
(i)
if
i.isdigit ()
else
i
for
i
in
lst]
return
lst
# Driver code
lst
=
[
’k’
,
5
,
’e’
,
3
,
’g’
,
7
,
0
,
’t’
]
print
( sort (lst))
Exit:
[0, 3, 5, 7, ’e’,’ g’, ’k’,’ t’]
- Method # 2: Usage key function
The key function serves as a key to compare sorting, which in our case is str .
# Python3 sorting program list
# contains alphabetic and numeric values
def
sort (lst):
lst.sort (key
=
str
)
return
lst
# Driver code
lst
=
[
’k’
,
5
,
’e’
,
3
,
’g’
,
7
,
0
,
’t’
]
print
(sort (lst))
Output:
[0, 3, 5, 7 , ’e’,’ g’, ’k’,’ t’]
Approach 2: sorted ()
Alternatively, you can also use Python’s built-in sorted () function for the same purpose. The simplest difference between sort () and sorted () is that sort () does not return any value, but sorted ( ) returns an iterative list. Now again there are two ways to use sorted () .
- Method # 1: Using the key function
# Python3 sorting list
# contains alphabetic and numeric values
def
sort (lst):
return
sorted
(lst, key
=
str
)
# Driver code
lst
=
[
’k’
,
5
,
’e’
,
3
,
’g’
,
7
,
0
,
’t ’
]
print
(sort (lst ))
Exit:
[ 0, 3, 5, 7, ’e’,’ g’, ’k’,’ t’]
- Method # 2: lambda
# Python3 list sorting program
# contains alphabetic and numeric values
def
sort (lst):
return
sorted
(lst, key
=
lambda
x: (
isinstance
(x,
str
), x))
# Driver code
lst
=
[
’k’
,
5
,
’e’
,
3
,
’g’
,
7
,
0
,
’t’
]
print
(sort (lst))
Exit:
[0, 3, 5, 7, ’e’,’ g’, ’k’,’ t’]