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

通过特定元素使元组序列唯一

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

通过特定元素使元组序列唯一

您可以从元素中创建一个 字典 ,并使用任何您希望唯一的键作为键,然后提取值。这适用于“唯一”子元素可哈希化的任何内容。整数是可哈希的:

def unique_by_key(elements, key=None):    if key is None:        # no key: the whole element must be unique        key = lambda e: e    return {key(el): el for el in elements}.values()

这个函数很通用。只要

key
可调用的返回值都可以用作字典中的键,它就可以用于提取任何特征的“独特”元素。订单将不会保留,当前每个键的最后一个元素获胜。

使用上述功能,您可以使用

operator.itemgetter()
对象或lambda从每个元素中提取第二个值。然后,这对于元组序列和列表序列均适用:

from operator import itemgetterunique_by_second_element = unique_by_key(a, key=itemgetter(1))

演示:

>>> from operator import itemgetter>>> a = ((1, 2), (7, 2), (5, 2), (3, 4), (8, 4))>>> unique_by_key(a, key=itemgetter(1))[(5, 2), (8, 4)]>>> b = [[1, 2], [7, 2], [5, 2], [3, 4], [8, 4]]>>> unique_by_key(b, key=itemgetter(1))[[5, 2], [8, 4]]

注意函数总是返回一个 列表 ; 您总是可以通过调用

tuple()
结果将其转换回去。



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

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

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