【问题标题】:Python - Tuples - Retrieve unique elements in list of tuplesPython - 元组 - 检索元组列表中的唯一元素
【发布时间】:2017-12-15 12:14:07
【问题描述】:

更新:

我选择了这个:

set(item[1] for item in id) 

谢谢大家,你们的想法帮助了我。


我正在处理一个元组列表:

以下面这行代码为例。我的清单可以是任意长度。但是,我将一直在寻找我的元组的给定索引:

id = [(9,'Tup','Check'),(10,'Tup','Pyton'),(11,'Not Tup','Stack'),(12,'Not Tup','Stack')]

在这种情况下,我希望抓住独特的第二个元素。

objective_ouput = ('Tup','Not Tup')

【问题讨论】:

  • 到目前为止您尝试了哪些方法,您在哪里卡住了?请注意,SO 不是代码编写服务。
  • 尝试使用list comprehension获取所需元素的列表,然后看看如何使用set
  • 好的,谢谢,会通知你们的。
  • 如果您认为问题已完全回答,请将问题标记为已回答(回复旁边的复选标记)。

标签: python list tuples unique


【解决方案1】:

就这么简单:

objective_ouput_set = {item[1] for item in id}

【讨论】:

  • 使用这个:set(item[1] for item in id) - 谢谢大家,你的想法帮助了我。
  • @ruh 适合您的选择 ;)
  • @StefanPochmann 也发生在list() vs []dict() vs {} 不知道为什么。 Here
  • @JoseA。不过,这是一个非常不同的问题。不涉及任何理解或生成器。你真的不应该在那里写...。最好不要在同一个基准中测量它。并且不要使用如此低和不同的number 值。
  • @StefanPochmann 你是对的,我希望this one 能满足你的要求。我的观点仍然是“常量”(与列表理解无关)初始化在字面上比函数方式快得多。如果您想要性能 IMO,这会降低可读性。
【解决方案2】:

您可以使用列表推导。

tup = ()
tuple([t[1] for t in your_list_of_tuples if t[1] not in tup])

顺便说一句,id 不是一个好的变量名,因为它是内置的。

【讨论】:

    【解决方案3】:

    通过将元组压缩在一起,您可以在每个索引处获得一系列元组。然后将其与set() 结合以消除重复项;

    [set(tup) for tup in zip(*id))]
    

    将在每个索引处生成一个包含唯一元素的列表。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-16
      • 1970-01-01
      • 1970-01-01
      • 2016-12-19
      • 2017-10-09
      • 2015-05-05
      • 1970-01-01
      相关资源
      最近更新 更多