在python列表中搜索子字符串,然后将其从列表中删除

在python列表中搜索子字符串,然后将其从列表中删除,python,list,search,Python,List,Search,我有一个python列表,如: ['A /cloudos-ui/branches/bare_metal', 'M /cloudos-ui/branches/bare_metal/packaging/DEBIAN/control', 'M /cloudos-ui/branches/bare_metal/create_cosmos_installer.sh', 'M /cloudos-ui/branches/bare_metal/packaging/DEBIAN/control', 'M /

我有一个python列表,如:

['A /cloudos-ui/branches/bare_metal', 
'M /cloudos-ui/branches/bare_metal/packaging/DEBIAN/control', 
'M /cloudos-ui/branches/bare_metal/create_cosmos_installer.sh', 
'M /cloudos-ui/branches/bare_metal/packaging/DEBIAN/control', 
'M /cloudos-ui/branches/bare_metal/scripts/create_skyline_installer.sh', 
'M /cloudos-ui/branches/bare_metal/forms.py', 
'M /cloudos-ui/branches/bare_metal/tables.py', 
'M /cloudos-ui/branches/bare_metal/templates/flavors/_create.html',
'M /cloudos-ui/branches/bare_metal/templates/flavors/_edit.html',
'A /cloudos-ui/branches/bare_metal/scripts/create_skyline_installer.sh',
'A /cloudos-ui/branches/bare_metal/forms.py', 
'A /cloudos-ui/branches/bare_metal/tables.py', 
'A /cloudos-ui/branches/bare_metal/templates/flavors/_create.html']
现在,每个字符串的第一个字符是
A
M
。除第一个字母外,有些字符串是相同的:例如,以
create\u skyline\u installer.sh结尾的两个字符串,从顶部算起第五个,从底部算起第四个

现在我要做的是找到字符串,在
A
M
之后,字符串主体的其余部分是相同的。然后我想删除以
M
开头的list元素

我的意思是,最终列表应该如下所示:

['A /cloudos-ui/branches/bare_metal', 
'M /cloudos-ui/branches/bare_metal/packaging/DEBIAN/control', 
'M /cloudos-ui/branches/bare_metal/create_cosmos_installer.sh', 
'M /cloudos-ui/branches/bare_metal/packaging/DEBIAN/control', 
'M /cloudos-ui/branches/bare_metal/scripts/create_skyline_installer.sh',
'M /cloudos-ui/branches/bare_metal/forms.py', 
'M /cloudos-ui/branches/bare_metal/tables.py', 
'M /cloudos-ui/branches/bare_metal/templates/flavors/_create.html',
'M /cloudos-ui/branches/bare_metal/templates/flavors/_edit.html']
但我无法找到解决办法


请帮助我。

尝试对列表进行排序,其中
A
元素将在
M
元素之前进行处理,并使用字典保存它们,因此第一个条目将被覆盖。使用
reverse=True
保留
A
条目

lst = ['A /cloudos-ui/branches/bare_metal (from /cloudos-ui/branches/rc4g1build:9930)',                            
'M /cloudos-ui/branches/bare_metal/misc/cosmos/packaging/DEBIAN/control', 
'M /cloudos-ui/branches/bare_metal/misc/cosmos/scripts/create_cosmos_installer.sh', 
'M /cloudos-ui/branches/bare_metal/misc/skyline/packaging/DEBIAN/control', 
'M /cloudos-ui/branches/bare_metal/misc/skyline/scripts/create_skyline_installer.sh',
'M /cloudos-ui/branches/bare_metal/src/horizon/openstack_dashboard/dashboards/admin/flavors/forms.py', 
'M /cloudos-ui/branches/bare_metal/src/horizon/openstack_dashboard/dashboards/admin/flavors/tables.py', 
'M /cloudos-ui/branches/bare_metal/src/horizon/openstack_dashboard/dashboards/admin/flavors/templates/flavors/_create.html',
'M /cloudos-ui/branches/bare_metal/src/horizon/openstack_dashboard/dashboards/admin/flavors/templates/flavors/_edit.html',
'A /cloudos-ui/branches/bare_metal/misc/skyline/scripts/create_skyline_installer.sh',
'A /cloudos-ui/branches/bare_metal/src/horizon/openstack_dashboard/dashboards/admin/flavors/forms.py', 
'A /cloudos-ui/branches/bare_metal/src/horizon/openstack_dashboard/dashboards/admin/flavors/tables.py', 
'A /cloudos-ui/branches/bare_metal/src/horizon/openstack_dashboard/dashboards/admin/flavors/templates/flavors/_create.html']

d = {}

for elem in sorted(lst):
    l = elem.split(None, 1)
    d[l[1]] = elem

print(list(d.values()))
它产生:

['A /cloudos-ui/branches/bare_metal (from /cloudos-ui/branches/rc4g1build:9930)',
 'M /cloudos-ui/branches/bare_metal/src/horizon/openstack_dashboard/dashboards/admin/flavors/templates/flavors/_edit.html',
 'M /cloudos-ui/branches/bare_metal/src/horizon/openstack_dashboard/dashboards/admin/flavors/forms.py',
 'M /cloudos-ui/branches/bare_metal/src/horizon/openstack_dashboard/dashboards/admin/flavors/tables.py',
 'M /cloudos-ui/branches/bare_metal/misc/cosmos/packaging/DEBIAN/control',
 'M /cloudos-ui/branches/bare_metal/src/horizon/openstack_dashboard/dashboards/admin/flavors/templates/flavors/_create.html',
 'M /cloudos-ui/branches/bare_metal/misc/skyline/packaging/DEBIAN/control',
 'M /cloudos-ui/branches/bare_metal/misc/cosmos/scripts/create_cosmos_installer.sh',
 'M /cloudos-ui/branches/bare_metal/misc/skyline/scripts/create_skyline_installer.sh']

请张贴您尝试过的内容。这里有一个方向-尝试使用regex查找以mra开头的字符串。除了复制和粘贴整个列表之外,为什么不能创建一个比您想要实现的更小的字符串呢?看到这个网孔我的眼睛真的很痛。杰克·阿杜的所有行业:谢谢你的建议。我编辑了名单。。如果可以的话,请尽量帮助我。谢谢…谢谢,但它也删除了前缀
A
M
。我希望他们在最终输出中。。你能告诉我还有什么能留住他们吗?@NikunjAggarwal:对不起,我不明白你的意思。哪个前缀?每个字符串前面都有
A
M
。。。我想在删除重复项后保留它们…@Nikungaggarwal:它们出现在我的输出中。你测试过了吗?它在你的中是如何出现的?谢谢,它正在工作。。。我在文件中写入输出,所以我使用
d
而不是
list(d.values())
,这就是我没有得到前缀的原因。但我改变了它,现在我得到了。非常感谢。