gpt4 book ai didi

python - 使用选择排序对列表进行排序

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:47:30 24 4
gpt4 key购买 nike

我有一个列表列表,我想根据列表的第一个元素按升序排序。如果列表的第一个元素相同,则应根据第二个元素对它们进行排序。

到目前为止,我只能根据列表的第一个元素进行排序。我使用插入排序对它们进行排序。如果第一个元素相同,如何根据第二个元素对列表进行排序?

def sort_list ():
# An example of the list to be sorted
original_list = [['Glenn', 'Stevens'],
['Phil', 'Wayne'],
['Peter', 'Martin'],
['Phil', 'Turville'],
['Chris', 'Turville']]

sorted_list = list(original_list)

for index in range(1, len(sorted_list)):
pos = index
while pos > 0 and sorted_list[pos - 1][0] > sorted_list[pos][0]:
sorted_list[pos-1], sorted_list[pos] = sorted_list[pos], sorted_list[pos-1]
pos -= 1

return sorted_list

最佳答案

如果你想使用自己的函数进行排序,你可以这样做。

要检查第二个元素是否与第一个元素相等,只需写

   (sorted_list[pos - 1][0] > sorted_list[pos][0] 
or (sorted_list[pos - 1][0] == sorted_list[pos][0]
and sorted_list[pos - 1][1] > sorted_list[pos][1]))

代替

sorted_list[pos - 1][0] > sorted_list[pos][0]

实际上你可以把它写得更短:

sorted_list[pos - 1] > sorted_list[pos]

这正是您所需要的。

当 python 比较列表时,它从第一个 [0] 开始比较它们的元素:

>>> a=[1,2]
>>> b=[1,1]
>>> a<b
False
>>> a=[1,2]
>>> b=[1,3]
>>> a<b
True
>>> a=[1,2]
>>> b=[2,1]
>>> a<b
True

关于python - 使用选择排序对列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14545888/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com