如何返回列表中第一个元素的精确匹配

2024-10-16 17:17:07 发布

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

  • 我有一个列表,我需要将该列表附加到另一个匹配的列表中
  • 准确的匹配应该首先出现
  • 然后匹配相关的匹配项
  • 如果a=['mnoabc'、'defabc'、'abc'、'abcdef'、'ijk'、'lmn']我正在搜索'abc',那么'abc'应该先到'abcdef',然后是'mnoabc'、'defabc'
  • 不担心订购关于mnoabc的“defabc”。若“abc”出现在字符串的开头,那个么它应该附加到列表的开头
a = ['mnoabc', 'defabc', 'abc', 'abcdef', 'ijk', 'lmn']
m = []
for i in a:
    if 'abc' in i:
        m.append(i)
m  

我的退出>&燃气轮机;['mnoabc'、'defabc'、'abc'、'abcdef']

预期>&燃气轮机;[‘abc’、‘abcdef’、‘mnoabc’、‘defabc’]

  • 我需要为这个做正则表达式吗

Tags: 字符串ingt列表forifabcappend
1条回答
网友
1楼 · 发布于 2024-10-16 17:17:07

可以使用insert在指定位置插入项。请尝试以下操作:

a = ['mnoabc', 'defabc', 'abc', 'abcdef', 'ijk', 'lmn']

m = []
num_startswith = 0

for i in a:
    if i == 'abc':
        m.insert(0, i)
        num_startswith += 1
    elif i.startswith('abc'):
        m.insert(num_startswith, i)
        num_startswith += 1
    elif 'abc' in i:
        m.append(i)

print(m) # ['abc', 'abcdef', 'mnoabc', 'defabc']

变量num_startswith跟踪插入以abc开头的单词的位置

相关问题 更多 >