繁体   English   中英

如何返回列表中第一个元素的完全匹配

[英]How to return exact match on first element in the list

  • 我有列表,我需要将 append 放入另一个匹配的列表中
  • 精确匹配应该首先出现
  • 然后它匹配相关匹配
  • 如果 a = ['mnoabc', 'defabc', 'abc', 'abcdef', 'ijk', 'lmn'] 我正在搜索 'abc' 那么 'abc' 应该先出现,然后是 'abcdef',然后是 'mnoabc' , 'defabc'
  • 不用担心关于 mnoabc'、'defabc' 的排序。 如果 'abc' 出现在字符串的开头,那么它应该 append 列在开头
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']

  • 我需要为此做正则表达式吗?

您可以使用insert在指定的 position 插入一个项目。尝试以下操作:

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开头的单词。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM