進入部分查找使用python表中的單詞:給出的名單他們
my_list = ['barrow', 'yellow', 'green', 'red', 'mellow']
我想找到這個列表,將匹配「****流」(「*」裏面的話是任何字母)。這應返回「手推車」,「黃色」和「醇香」(包括在泰德名單的話,由六個字母,其最後兩個字母是「嗷嗷」形成)
進入部分查找使用python表中的單詞:給出的名單他們
my_list = ['barrow', 'yellow', 'green', 'red', 'mellow']
我想找到這個列表,將匹配「****流」(「*」裏面的話是任何字母)。這應返回「手推車」,「黃色」和「醇香」(包括在泰德名單的話,由六個字母,其最後兩個字母是「嗷嗷」形成)
另一種方式來處理你的問題是使用fnmatch,只要你的乾草堆棧是字符串列表。在情況下,如果它不是,你可能需要做一個預皈依爲字符串
>>> import fnmatch
>>> my_list = [2345, 3245, 2343, 8746]
>>> fnmatch.filter(map(str, my_list), "2*4*")
['2345', '2343']
>>> my_list = ['barrow', 'yellow', 'green', 'red', 'mellow']
>>> fnmatch.filter(map(str, my_list), "*ow")
['barrow', 'yellow', 'mellow']
試試這個:
>>> new_list = [w for w in my_list if (len(w) == 6 and w[-2:] == 'ow')]
>>> new_list
['barrow', 'yellow', 'mellow']
[x for x in my_list if x.endswith('ow') and len(x) == 6]
這使用一個列表理解,它採用my_list
的所有元素,以'ow'結尾,長度爲6,這正是您想要的。爲了更廣泛的解決方案,你將建立一個正則表達式re
你想要的字符串相匹配,並使用re.match()
爲條件
這適用於我發佈的示例。在這種情況下它是否也能起作用?:my_list = [2345,3245,2343,8746]。我想找到my_list中的數字[2 * 4 *](2345,2343) – Thon
您可以使用正則表達式:
>>> import re
>>> my_list = ['barrow', 'yellow', 'green', 'red', 'mellow']
>>> [e for e in my_list if re.search(r'....ow', e)]
['barrow', 'yellow', 'mellow']
>>> [e for e in my_list if re.search(r'2\d4\d', str(e))]
[2345, 2343]
我會發佈一個秒一個答案,但正如一個側面說明,你應該避免使用'list'作爲變量名稱,因爲它已經是Python中的一種類型了 –
這不是一個代碼寫入服務;你試過了什麼,究竟是什麼問題呢? – jonrsharpe
我知道。我一直在研究,我不知道該如何面對它。 – Thon