我有一个包含重复值的列表,如下所示:
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/