Python 檢查列表是否包含字串
Hemank Mehtani
2023年1月30日
字串是一個字元序列。就像字串在特定位置儲存字元一樣,我們可以使用列表來儲存字串的集合。
在本教程中,我們將在 Python 列表中獲取具有特定值的字串。
使用 for
迴圈檢查 Python 列表中的特定字串
for
用於在 Python 中迭代一個序列。
其獲取包含特定值的字串的實現如下例所示。
py_list = ["a-1", "b-2", "c-3", "a-4"]
new_list = []
for x in py_list:
if "a" in x:
new_list.append(x)
print(new_list)
輸出:
['a-1','a-4']
在上面的程式碼中,在 for
迴圈中使用了 if
語句來搜尋列表 py_list
中包含 a
的字串。建立另一個名為 new_list
的列表來儲存這些特定字串。
使用列表推導式檢查 Python 列表中的特定字串
列表推導式是一種基於現有列表建立新列表的方法。它提供了更短的語法,比用於建立列表的其他函式和迴圈更緊湊、更快。
例如,
py_list = ["a-1", "b-2", "c-3", "a-4"]
r = [s for s in py_list if "a" in s]
print(r)
輸出:
['a-1', 'a-4']
在上面的程式碼中,列表推導用於在列表 py_list
中搜尋具有 a
的字串。
請注意,使用其他函式或迴圈編寫相同的程式碼會花費更多時間,因為它們的實現需要更多程式碼,但列表推導式解決了這個問題。
我們還可以使用列表推導來找出包含多個特定值的字串,即,我們可以通過組合兩個推導在 py_list
中找到包含 a
和 b
的字串。
例如,
py_list = ["a-1", "b-2", "c-3", "a-4", "b-8"]
q = ["a", "b"]
r = [s for s in py_list if any(xs in s for xs in q)]
print(r)
輸出:
['a-1', 'b-2', 'a-4','b-8']
使用 filter()
函式獲取 Python 列表中的特定字串
filter()
函式在檢查每個元素是否滿足某些條件的函式的幫助下過濾給定的可迭代物件。
它返回一個迭代器,該迭代器對可迭代物件中的每個元素進行檢查。
例如,
py_lst = ["a-1", "b-2", "c-3", "a-4"]
filter(lambda x: "a" in x, py_lst)
print(filter(lambda x: "a" in x, py_lst))
輸出:
<filter object at 0x7fd36c1905e0>
請注意,上面的輸出是一個過濾器迭代器型別物件,因為 filter()
函式返回一個迭代器而不是一個列表。
我們可以使用 list()
函式(如下面的程式碼所示)來獲取列表。
list(filter(lambda x: "a" in x, py_lst))
輸出:
['a-1','a-4']
在上面的程式碼中,我們使用 filter()
在列表 py_list
中查詢具有特定值的字串。
相關文章 - Python String
- 在 Python 中從字串中刪除逗號
- 在 Python 中將字串轉換為變數名
- Python 如何去掉字串中的空格/空白符
- 如何在 Python 中從字串中提取數字
- Python 如何將字串轉換為時間日期 datetime 格式
- Python2 和 3 中如何將(Unicode)字串轉換為小寫