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

2024-09-26 22:51:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个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']

现在每个字符串的第一个字符是AM。除了第一个字母外,有些字符串是相同的:例如,以create_skyline_installer.sh结尾的两个字符串,从顶部起第5个,从底部起第4个。你知道吗

现在我要实现的是找到在AM之后,字符串主体的其余部分相同的字符串。然后我想删除以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']

但我找不到解决办法。你知道吗

请帮帮我。你知道吗


Tags: 字符串pyuihtmlshcreateinstallerdebian
1条回答
网友
1楼 · 发布于 2024-09-26 22:51:06

尝试对列表进行排序,其中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']

相关问题 更多 >

    热门问题