最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python判斷字符串是否包含特定子串的7種方法

 更新時間:2025年12月12日 08:55:29   作者:孝正123  
我們經常會遇這樣一個需求,判斷字符串中是否包含某個關鍵詞,也就是特定的子字符串,本文主要給大家分享了 7 種可以達到此效果的方法,大家可以根據需要進行選擇

我們經常會遇這樣一個需求:判斷字符串中是否包含某個關鍵詞,也就是特定的子字符串。比如從一堆書籍名稱中找出含有“python”的書名。

判斷兩個字符串相等很簡單,直接 == 就可以了。其實判斷包含子串也非常容易,而且還不止一種方法。下面我們就給大家分享 7 種可以達到此效果的方法:

1、使用 in 和 not in

innot inPython 中是很常用的關鍵字,我們將它們歸類為成員運算符。

使用這兩個成員運算符,可以很讓我們很直觀清晰的判斷一個對象是否在另一個對象中,示例如下:

>>> "llo" in "hello, python"
True
>>>
>>> "lol" in "hello, python"
False

2、使用 find 方法

使用 字符串 對象的 find 方法,如果有找到子串,就可以返回指定子串在字符串中的出現位置,如果沒有找到,就返回 -1

>>> "hello, python".find("llo") != -1
True
>>> "hello, python".find("lol") != -1
False
>>

3、使用 index 方法

字符串對象有一個 index 方法,可以返回指定子串在該字符串中第一次出現的索引,如果沒有找到會拋出異常,因此使用時需要注意捕獲。

def is_in(full_str, sub_str):
    try:
        full_str.index(sub_str)
        return True
    except ValueError:
        return False

print(is_in("hello, python", "llo"))  # True
print(is_in("hello, python", "lol"))  # False

4、使用 count 方法

利用和 index 這種曲線救國的思路,同樣我們可以使用 count 的方法來判斷。

只要判斷結果大于 0 就說明子串存在于字符串中。

def is_in(full_str, sub_str):
    return full_str.count(sub_str) > 0

print(is_in("hello, python", "llo"))  # True
print(is_in("hello, python", "lol"))  # False

5、通過魔法方法

在第一種方法中,我們使用 innot in 判斷一個子串是否存在于另一個字符中,實際上當你使用 innot in 時,Python 解釋器會先去檢查該對象是否有__contains__魔法方法。

若有就執(zhí)行它,若沒有,Python 就自動會迭代整個序列,只要找到了需要的一項就返回 True 。

示例如下;

>>> "hello, python".__contains__("llo")
True
>>>
>>> "hello, python".__contains__("lol")
False
>>>

這個用法與使用 innot in 沒有區(qū)別,但不排除有人會特意寫成這樣來增加代碼的理解難度。

6、借助 operator

operator模塊是 python 中內置的操作符函數接口,它定義了一些算術和比較內置操作的函數。operator模塊是用 c 實現的,所以執(zhí)行速度比 python 代碼快。

operator 中有一個方法 contains 可以很方便地判斷子串是否在字符串中。

>>> import operator
>>>
>>> operator.contains("hello, python", "llo")
True
>>> operator.contains("hello, python", "lol")
False
>>> 

7、使用正則匹配

說到查找功能,那正則絕對可以說是專業(yè)的工具,多復雜的查找規(guī)則,都能滿足你。

對于判斷字符串是否存在于另一個字符串中的這個需求,使用正則簡直就是大材小用。

import re

def is_in(full_str, sub_str):
    if re.findall(sub_str, full_str):
        return True
    else:
        return False

print(is_in("hello, python", "llo"))  # True
print(is_in("hello, python", "lol"))  # False

8、知識擴展:獲取特定字符與子串的完整方法

在Python編程中,字符串處理是基礎且高頻的操作。本文圍繞用戶提出的'獲取字符串中特定字符'的需求,系統(tǒng)梳理了索引訪問、切片操作、find()方法及正則表達式四種核心實現方案。

基礎字符串訪問方法

索引與切片操作

Python字符串支持類似列表的索引訪問,可通過整數偏移量直接獲取字符或子串:

sample_str = "Hello, World! This is a sample string with安hjj in it."

# 單字符訪問
print("第一個字符:", sample_str[0])  # 輸出: H
print("第五個字符:", sample_str[4])  # 輸出: o

# 子串切片(左閉右開)
print("前5個字符:", sample_str[:5])  # 輸出: Hello
print("第7到12個字符:", sample_str[7:12])  # 輸出: World
操作類型語法示例返回值類型邊界處理
單字符str[index]str索引越界拋出IndexError
子串切片str[start:end]str超出范圍自動截斷

查找子串位置

使用find()方法可定位子串首次出現的位置,未找到時返回-1:

target = "安hjj"
index = sample_str.find(target)
if index != -1:
    print(f"找到'{target}',位置在:{index}")
    print("完整子串:", sample_str[index:index+len(target)])
else:
    print(f"未找到'{target}'")

高級模式匹配技術

正則表達式匹配 對于復雜模式匹配(如中文+字母組合),推薦使用re模塊:

import re

# 匹配'安'開頭后跟3個任意字符
pattern = re.compile(r'安\w{3}')  
match = pattern.search(sample_str)
if match:
    print("正則匹配結果:", match.group())

正則表達式常用元字符說明:

元字符匹配規(guī)則
\w匹配字母數字及下劃線
{3}前驅元素重復3次
.*匹配任意字符(除換行)

完整實現示例

# filename="string_operations.py"
def main():
    sample_str = "Hello, World! This is a sample string with安hjj in it."
    
    # 基礎訪問
    print("索引訪問示例:")
    print("第2字符:", sample_str[1])  # e
    print("6-10字符:", sample_str[6:10])  # , Wo
    
    # 子串查找
    print("\n子串查找示例:")
    target = "安hjj"
    pos = sample_str.find(target)
    if pos != -1:
        print(f"找到'{target}'于位置{pos}")
    
    # 正則匹配
    print("\n正則匹配示例:")
    import re
    chinese_pattern = re.compile(r'安[a-zA-Z0-9]{3}')
    result = chinese_pattern.search(sample_str)
    if result:
        print("匹配到中文+字母組合:", result.group())

if __name__ == "__main__":
    main()

運行該程序將依次演示:

  • 基礎索引與切片操作
  • 子串查找與位置定位
  • 正則表達式復雜模式匹配

到此這篇關于Python判斷字符串是否包含特定子串的7種方法的文章就介紹到這了,更多相關Python判斷字符串是否包含特定子串內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python高級過濾器之filter函數詳解

    Python高級過濾器之filter函數詳解

    在Python中,filter()是一個非常有用的內置函數,它能夠根據指定的函數來篩選出可迭代對象中滿足條件的元素,本文將從入門到精通,全面介紹filter()函數的用法和相關知識點
    2023-08-08
  • 使用Python模塊進行數據處理的詳細步驟

    使用Python模塊進行數據處理的詳細步驟

    Python 提供了豐富的模塊和庫,用于處理各種類型的數據,本文介紹了一些常用的模塊和庫,以及如何使用它們進行數據處理的詳細步驟和代碼示例,對我們的學習或工作有一定的幫助,需要的朋友可以參考下
    2025-02-02
  • python類方法中的self關鍵字使用

    python類方法中的self關鍵字使用

    這篇文章主要介紹了python類方法中的self關鍵字使用,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • TensorFlow tf.nn.conv2d_transpose是怎樣實現反卷積的

    TensorFlow tf.nn.conv2d_transpose是怎樣實現反卷積的

    這篇文章主要介紹了TensorFlow tf.nn.conv2d_transpose是怎樣實現反卷積的,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-04-04
  • 探索Python數據可視化庫中Plotly Express的使用方法

    探索Python數據可視化庫中Plotly Express的使用方法

    在數據分析和可視化領域,數據的有效呈現是至關重要的,python作為一種強大的編程語言,提供了多種數據可視化工具和庫,本文將介紹Plotly Express的基本概念和使用方法,幫助讀者快速入門并掌握數據可視化的技巧
    2023-06-06
  • PySpark中RDD的數據輸出問題詳解

    PySpark中RDD的數據輸出問題詳解

    RDD是 Spark 中最基礎的抽象,它表示了一個可以并行操作的、不可變得、被分區(qū)了的元素集合,這篇文章主要介紹了PySpark中RDD的數據輸出詳解,需要的朋友可以參考下
    2023-01-01
  • python jieba分詞并統(tǒng)計詞頻后輸出結果到Excel和txt文檔方法

    python jieba分詞并統(tǒng)計詞頻后輸出結果到Excel和txt文檔方法

    本篇文章主要介紹了python jieba分詞并統(tǒng)計詞頻后輸出結果到Excel和txt文檔方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • 對python條件表達式的四種實現方法小結

    對python條件表達式的四種實現方法小結

    今天小編就為大家分享一篇對python條件表達式的四種實現方法小結,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • 使用Python在Word文檔中插入頁眉和頁腳

    使用Python在Word文檔中插入頁眉和頁腳

    在企業(yè)日常工作中,專業(yè)的文檔排版對于報告、計劃書或匯報材料至關重要,頁眉頁腳不僅承載標題、公司名稱、日期信息,還能插入公司 Logo,本文將展示如何創(chuàng)建帶頁眉、頁腳和圖片的 Word 文檔,結合實際業(yè)務場景,構建標準化報告模板,需要的朋友可以參考下
    2026-01-01
  • python中defaultdict方法的使用詳解

    python中defaultdict方法的使用詳解

    這篇文章主要介紹了python中defaultdict方法的使用,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04

最新評論

会昌县| 富川| 余干县| 扬州市| 衡南县| 西贡区| 宜兴市| 宁阳县| 青岛市| 犍为县| 黔江区| 兴宁市| 武宣县| 元谋县| 阿合奇县| 郁南县| 余庆县| 岗巴县| 红河县| 兰州市| 阿克陶县| 哈巴河县| 黄龙县| 东丽区| 聂荣县| 永宁县| 左贡县| 广水市| 康平县| 航空| 若羌县| 剑阁县| 东辽县| 沙湾县| 武汉市| 太谷县| 盈江县| 元阳县| 石狮市| 榆中县| 阿城市|