如何对一个字符串列表进行排序的Python实现
在本教程中,我们将看到如何对一个字符串列表进行排序。我们将使用sort方法和sorted函数对给定的字符串列表进行排序。然后我们将看到如何根据不同的标准(如长度、值等)对字符串列表进行排序。
让我们先看一下如何使用 list.sort() 方法对字符串列表进行排序。sort方法是在原地排序的。让我们看看代码。
更多Python相关文章,请阅读:Python 教程
示例
# 字符串列表
strings = ['Python', 'C', 'Java', 'JavaScript', 'React', 'Django', 'Spring']
# 按升序排序列表
strings.sort()
# 打印已排序列表
print(strings)
输出
如果执行上述程序,则会得到以下结果。
['C', 'Django', 'Java', 'JavaScript', 'Python', 'React', 'Spring']
我们可以使用参数 reverse 将列表按降序排序。让我们看看如何以降序方式对列表进行排序。
示例
# 字符串列表
strings = ['Python', 'C', 'Java', 'JavaScript', 'React', 'Django', 'Spring']
# 按降序排序列表
strings.sort(reverse=True)
# 打印已排序列表
print(strings)
输出
如果执行上述程序,则会得到以下结果。
['Spring', 'React', 'Python', 'JavaScript', 'Java', 'Django', 'C']
我们已经学习了如何使用sort方法对字符串列表进行排序。现在让我们看看如何使用内置的 sorted 函数对字符串列表进行排序。
示例
# 字符串列表
strings = ['Python', 'C', 'Java', 'JavaScript', 'React', 'Django', 'Spring']
# 按升序排序列表
sorted_strings = sorted(strings)
# 打印已排序列表
print(sorted_strings)
输出
如果执行上述程序,则会得到以下结果。
['C', 'Django', 'Java', 'JavaScript', 'Python', 'React', 'Spring']
我们也可以使用 sorted 函数将列表按降序排序,通过在函数中传递第二个参数为 True 。让我们看看代码。
示例
# 字符串列表
strings = ['Python', 'C', 'Java', 'JavaScript', 'React', 'Django', 'Spring']
# 按降序排序列表
sorted_strings = sorted(strings, reverse=True)
# 打印已排序列表
print(sorted_strings)
输出
如果执行上述程序,则会得到以下结果。
['Spring', 'React', 'Python', 'JavaScript', 'Java', 'Django', 'C']
我们可以根据字符串长度来对字符串列表进行排序。使用sort方法和 sorted 函数,传入长度作为参数即可。让我们看看如何根据长度排序字符串列表。
示例
# 字符串列表
strings = ['Python', 'C', 'Java', 'JavaScript', 'React', 'Django', 'Spring']
# 按长度升序排序列表
strings.sort(key=len)
# 打印已排序列表
print(strings)
输出
如果您执行上述程序,则会得到以下结果。
['C', 'Java', 'React', 'Python', 'Django', 'Spring', 'Javascript']
我们可以将任何函数传递给关键参数。排序方法将根据给定给关键参数的函数的返回值对列表进行排序。排序函数中的相同内容也一样。
让我们通过对其值进行排序来查看使用排序函数的示例。
例子
# 字符串列表
strings = ['7', '34', '3', '23', '454', '12', '9']
# 按升序排序列表-整数值
sorted_strings = sorted(strings, key=int)
# 打印排序后的列表
print(sorted_strings)
输出结果
如果您执行上述程序,则会得到以下结果。
['3', '7', '9', '12', '23', '34', '454']
结论
我们可以同时传递 key 和 reverse 参数到排序方法和排序函数中,以实现我们想要的任何目标。尝试并探索它们。如果对本教程有任何疑问,请在评论部分中提出。