【python】排序

关键词list.sort()

people = [[7,0],[4,4],[7,1],[5,0],[6,1],[5,2]]
people.sort()
print(people)
> [[4, 4], [5, 0], [5, 2], [6, 1], [7, 0], [7, 1]]
# 默认是按照从小到大的顺序,若要从大到小输出,则关键词reverse设置为True即可
people.sort(reverse=True)
print(people)
> [[7, 1], [7, 0], [6, 1], [5, 2], [5, 0], [4, 4]]
# 自定义排序,按照规则排序等则需要设置关键词key
# key=lambda x:【规则】
# lambda是函数表达式的意思,
# x为list中的元素,若list为二维,则x指[4,4],可以用X[0],X[1]继续索引
# 【】内为规则,或者excel排序中使用的关键字。
# 若使用多个关键字,则用()括起来,里面为不同的关键字,第一关键字、第二关键字...
# 比如这里我希望 第一关键字x[0]按照从大到小排,第二关键字X[1]从小到大排,可以这么写
people.sort(key=lambda x:(-x[0],x[1]))
> [[7, 0], [7, 1], [6, 1], [5, 0], [5, 2], [4, 4]]
# 或者这么写
people.sort(key=lambda x:(x[0],-x[1]),reverse=True)
> [[7, 0], [7, 1], [6, 1], [5, 0], [5, 2], [4, 4]]

# 当元素有负数时,也可以设置按照绝对值排序
people = [1,5,6,-6,4,-2,-6,-2,-9,15]
people.sort(key=lambda x:abs(x))
print(people)
> [1, -2, -2, 4, 5, 6, -6, -6, -9, 15]

函数 sorted()

# 函数sorted()排序,用法与上述一致,
# 但是需要注意排序后对原列表不产生任何影响。

people = [1,5,6,-6,4,-2,-6,-2,-9,15]
sorted(people, key=lambda x:abs(x), reverse=True)
print(people)
> [1, 5, 6, -6, 4, -2, -6, -2, -9, 15]

list2 = sorted(people, key=lambda x:abs(x), reverse=True)
print(list2)
> [15, -9, 6, -6, -6, 5, 4, -2, -2, 1]

你可能感兴趣的:(刷题心得,python,leetcode)