每个唯一前缀列表中仅保留一项

时间:2019-02-28 03:02:07

标签: python-3.x list

我有一个示例情况,其中有一个如下列表:

test = ['a-nyc','a-chi','b-sf','c-dal','a-phx','c-la']

此列表中的项目自然以某种方式排序,目的是保留每个前缀的第一个遇到的值,例如所需的结果如下所示:

['a-nyc', 'b-sf', 'c-dal']

有方便的方法吗?

看起来可以这样:

newl = []
prel = []
for i in range(len(test)):
    if test[i].split('-')[0] not in prel:
        newl.append(test[i])
    else:
        pass
    prel.append(test[i].split('-')[0])

但不确定是否还有更多pythonic解决方案

1 个答案:

答案 0 :(得分:0)

是的,您也可以尝试以下操作:

    test = ['a-nyc','a-chi','b-sf','c-dal','a-phx','c-la']
    prefix = []
    newlist = []
    for i in test:
        if i.split('-')[0] not in prefix:
            prefix.append(i.split('-')[0])
            newlist.append(i)
    print(newlist)

如果有任何疑问,请告诉我。 谢谢。