簡體   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