📅  最后修改于: 2023-12-03 15:04:25.637000             🧑  作者: Mango
在 Python 中,我们可以使用 sort()
或者 sorted()
函数对给定字符串列表中的所有子列表进行排序,以便使它们按照特定顺序进行排列。
sort()
方法可以直接对列表进行排序。该方法有两个可选参数:key
和 reverse
。
key
参数用于指定排序时,元素的比较准则。对于字符串列表,我们可以设置 key=str.lower
来忽略大小写进行排序(默认情况下是按照 ASCII 码值进行比较)。reverse
参数用于指定排序的顺序。默认是升序排列,如果设置为 True
,则是降序排列。以下是使用 sort()
方法对列表进行排序的示例:
>>> lst = ["banana", "apple", "orange", "pineapple"]
>>> lst.sort()
>>> lst
['apple', 'banana', 'orange', 'pineapple']
>>> lst.sort(reverse=True)
>>> lst
['pineapple', 'orange', 'banana', 'apple']
>>> lst = ["Banana", "Apple", "orange", "pineapple"]
>>> lst.sort(key=str.lower)
>>> lst
['Apple', 'Banana', 'orange', 'pineapple']
sorted()
函数与 sort()
方法类似,只不过 sorted()
返回一个新的已排序的列表,而不是在原列表上进行修改。
以下是使用 sorted()
函数对列表进行排序的示例:
>>> lst = ["banana", "apple", "orange", "pineapple"]
>>> sorted_lst = sorted(lst)
>>> sorted_lst
['apple', 'banana', 'orange', 'pineapple']
>>> sorted_lst = sorted(lst, reverse=True)
>>> sorted_lst
['pineapple', 'orange', 'banana', 'apple']
>>> lst = ["Banana", "Apple", "orange", "pineapple"]
>>> sorted_lst = sorted(lst, key=str.lower)
>>> sorted_lst
['Apple', 'Banana', 'orange', 'pineapple']
如果要对一个列表中所有子列表按照某个特定的顺序进行排序,我们可以使用 sort()
或 sorted()
函数的 key
参数来指定排序规则。
例如,我们有一个列表,其中包含多个子列表:
>>> lst = [["apple", "orange", "cherry"], ["kiwi", "banana"], ["pear"]]
我们希望对每个子列表按照字母表顺序进行排序,可以使用以下代码:
>>> sorted_lst = sorted(lst, key=lambda x: sorted(x))
>>> sorted_lst
[['cherry', 'orange', 'apple'], ['banana', 'kiwi'], ['pear']]
这里使用了 Python 的 Lambda 表达式来指定排序规则,即对每个子列表进行排序。sorted(x)
函数会返回一个已排序的列表,然后我们使用 lambda
函数将其作为 key
参数输入到 sorted()
函数中。
注意:由于在 sorted()
函数中提供内部的排序规则,所以你可以并不需要使用 sort()
方法,这意味着你不需要修改原始列表。