在列表的开头和结尾强制执行项目

在列表的开头和结尾强制执行项目,第1张

列表的开头和结尾强制执行项目

您可以使用

sorted
以下内容
key

sorted(l, key = lambda s: (s!='p', s=='q', s))['p', 'p', 'a', 'b', 'c', 'd', 'f', 'g', 'n', 't', 'z', 'q', 'q']

说明

为了更好地了解它是如何工作的,下面的列表理解旨在在进行比较之前复制从自

lambda
变量中定义的函数返回的内容
key

t = [(s!='p', s=='q', s) for s in pl]print(t)[(True, False, 'f'), (True, False, 'g'), (False, False, 'p'), (True, False, 'a'), (False, False, 'p'), (True, False, 'c'), (True, False, 'b'), (True, True, 'q'), (True, False, 'z'), (True, False, 'n'), (True, False, 'd'), (True, False, 't'), (True, True, 'q')]

然后,这将

key
用于对列表中的项目进行排序,如文档中所述:

key参数的值应该是一个采用单个参数并返回用于排序目的键的函数。

因此考虑到

False = 0
and
True = 1
,当对这个元组列表进行排序时,结果将是以下内容:

sorted(t)[(False, False, 'p'), (False, False, 'p'), (True, False, 'a'), (True, False, 'b'), (True, False, 'c'), (True, False, 'd'), (True, False, 'f'), (True, False, 'g'), (True, False, 'n'), (True, False, 't'), (True, False, 'z'), (True, True, 'q'), (True, True, 'q')]


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5647547.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存