从嵌套列表中的特定点获取唯一值

Getting unique values from specific point in a nested list

我有一个这样的列表:

$ mylist = [(u'nr',<object>,'string1'),(u'fm',<object>,'string2'),(u'nr',<object>,'string3')]

我想从该列表中获取 nrfm 的唯一值(即第一个元素没有重复值)。

我一直在寻找使用 set() 等获取唯一列表的方法,并且我尝试了这个(来自另一个线程):

$ unique = reduce(lambda l, x: l.append(x) or l if x not in l else l, mylist, [])

但这没有用。

被要求澄清:我希望最终结果['nr','fm']

这将产生元组列表的唯一第一个值:

set(x[0] for x in mylist)

如果你想把它返回到列表中:

list(set(x[0] for x in mylist))

尝试:

list(set(tpl[0] for tpl in mylist))

解释:
将问题分成几个阶段:

  1. 从嵌套列表中获取索引 0 处的所有项目:

    first_items_in_nested = (tpl[0] for tpl in mylist)  
    
  2. 从第 1 步中获取唯一值:

    unique_items = set(first_items_in_nested)
    
  3. (可选)将结果转换回列表:

    result = list(unique_items)