栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

根据每个子列表中的第三项删除列表中的重复项

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

根据每个子列表中的第三项删除列表中的重复项

我会这样:

seen = set()cond = [x for x in c if x[3] not in seen and not seen.add(x[3])]

说明:

seen
是一个跟踪每个子列表中第四个元素的集合。
cond
是精简清单。如果
x[3]
(其中
x
的子列表中的
c
)不在其中
seen
x
则将添加到中
cond
并将
x[3]
添加到中
seen

seen.add(x[3])
将返回
None
,所以
not seen.add(x[3])
总是会
True
,但如果这部分将只进行评估
x[3]not inseen
True
因为Python使用短路评价。如果第二个条件得到评估,它将始终返回
True
并具有添加
x[3]
到的副作用
seen
。这是正在发生的事情的另一个示例(
print
返回
None
并具有打印某些内容的“副作用”):

>>> False and not print('hi')False>>> True and not print('hi')hiTrue


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/651558.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号