python - 如何按特定顺序从列表中获取唯一值?

标签 python list

我有一个包含重复值的列表,如下所示:

L1 = ['r-A','r-G','S1','r-A','S2','r-O','r-G','S2','S1','r-A']

并且喜欢删除包含'r-'的重复元素,只在相应位置留下第一个值。

这是:

For 'r-A' select L1[0] and in output would be L2[0]
For 'r-G' select L1[1] and in output would be L2[1]
For 'r-O' select L1[5] and in output would be L2[4]

所以输出列表将是:

L2 = ['r-A','r-G','S1','S2','r-O','S2','S1']

使用 set() 我得到了唯一值,但它以不同的顺序显示它们并删除了不包含 r-

的值
>>> list(set(L1))
['S2', 'S1', 'r-A', 'r-G', 'r-O']

我该怎么做?

最佳答案

应该这样做:

L1 = ['r-A','r-G','S1','r-A','S2','r-O','r-G','S2','S1','r-A']
L2 = []
for item in L1:
    if 'r-' in item and item  in L2:
         continue
    else:
        L2.append(item)
print(L2)

输出:

['r-A', 'r-G', 'S1', 'S2', 'r-O', 'S2', 'S1']

关于python - 如何按特定顺序从列表中获取唯一值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60444365/

相关文章:

python - 从 pandas 的 date_range 中排除闰年

python - Django 1.4 - 带有列表的 bulk_create

python - 如何将列表 [a, b, c] 转换为 python slice index[ :a, :b :c]?

python - 这 8 行 python + pandas 需要大约 1 个月才能执行,能帮我加快速度吗?

python - AppEngine 的功能和技巧

java - 在 while 循环中将对象添加到列表

c++ - 如何从存储在列表中的对象调用成员函数

C-链表遍历问题

python - 从嵌套列表中获取索引位置

css - 是否可以将列表放入 span 标记中?