91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

python判斷字符串是否包含子串

python爬蟲知識(shí)分享 ? 來(lái)源:python爬蟲知識(shí)分享 ? 作者:python爬蟲知識(shí)分享 ? 2022-04-08 15:15 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1、使用 in 和 not in

innot inPython 中是很常用的關(guān)鍵字,我們將它們歸類為 成員運(yùn)算符。

使用這兩個(gè)成員運(yùn)算符,可以讓我們很直觀清晰地判斷一個(gè)對(duì)象是否在另一個(gè)對(duì)象中,示例如下:

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

2、使用 find 方法

使用 字符串 對(duì)象的 find 方法,如果有找到子串,就可以返回指定子串在字符串中的出現(xiàn)位置,如果沒(méi)有找到,就返回 -1

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

3、使用 index 方法

字符串對(duì)象有一個(gè) index 方法,可以返回指定子串在該字符串中第一次出現(xiàn)的索引,如果沒(méi)有找到會(huì)拋出異常,因此使用時(shí)需要注意捕獲。

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 這種曲線救國(guó)的思路,同樣我們可以使用 count 的方法來(lái)判斷。

只要判斷結(jié)果大于 0 就說(shuō)明子串存在于字符串中。

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、通過(guò)魔法方法

在第一種方法中,我們使用 in 和 not in 判斷一個(gè)子串是否存在于另一個(gè)字符中,實(shí)際上當(dāng)你使用 in 和 not in 時(shí),Python 解釋器會(huì)先去檢查該對(duì)象是否有 __contains__ 魔法方法。

若有就執(zhí)行它,若沒(méi)有,Python 就自動(dòng)會(huì)迭代整個(gè)序列,只要找到了需要的一項(xiàng)就返回 True 。

示例如下;

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

這個(gè)用法與使用 in 和 not in 沒(méi)有區(qū)別,但不排除有人會(huì)特意寫成這樣來(lái)增加代碼的理解難度。

6、借助 operator

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

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

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

7、使用正則匹配

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

對(duì)于判斷字符串是否存在于另一個(gè)字符串中的這個(gè)需求,使用正則簡(jiǎn)直就是大材小用。

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

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 字符串
    +關(guān)注

    關(guān)注

    1

    文章

    596

    瀏覽量

    23165
  • python
    +關(guān)注

    關(guān)注

    57

    文章

    4876

    瀏覽量

    90025
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    求助 LabVIEW 字符串比較

    1.輸入一個(gè)字符串,儲(chǔ)存起來(lái)。 2.再次輸入一個(gè)字符串,先和儲(chǔ)存起來(lái)的字符串比較,如果不同則存儲(chǔ)起來(lái),如果相同則不儲(chǔ)存。 3.再次輸入一個(gè)字符串,和所有儲(chǔ)存起來(lái)的
    發(fā)表于 03-02 17:24

    打開工程后工程中的字體沒(méi)有顯示,如字符串,數(shù)字等控件不能預(yù)覽顯示字體?

    打開工程后工程中的字體沒(méi)有顯示,如字符串,數(shù)字等控件不能預(yù)覽顯示字體?
    發(fā)表于 02-25 17:39

    cJSON庫(kù)是什么?

    json的首字母判斷整個(gè)json的類型,如果json以'{'開頭時(shí),就是對(duì)象,以'['開頭時(shí),就是數(shù)組,否則就是字符串或者其他常量
    發(fā)表于 01-29 07:13

    字符串控件與靜態(tài)字符串控件中預(yù)覽字符顯示亂碼,如何修改顯示正常?

    字符串控件與靜態(tài)字符串控件中預(yù)覽字符顯示亂碼,如何修改顯示正常?
    發(fā)表于 01-20 17:17

    字符串,數(shù)字控件如何控制背景顏色和前景字體顏色?

    字符串,數(shù)字控件如何控制背景顏色和前景字體顏色?
    發(fā)表于 01-20 15:12

    Linux下怎么讓中文字符串按照拼音排序?

    求教 Linux 下怎么讓中文字符串按照拼音排序?
    發(fā)表于 01-06 07:40

    字符串關(guān)聯(lián)數(shù)字變量如何使用?我們的地址都是16位數(shù)據(jù),可以使用16位數(shù)字變量顯示字符串嗎?

    字符串關(guān)聯(lián)數(shù)字變量如何使用?我們的地址都是16位數(shù)據(jù),可以使用16位數(shù)字變量顯示字符串嗎?
    發(fā)表于 12-15 08:24

    飛凌嵌入式ElfBoard-標(biāo)準(zhǔn)IO接口之格式化輸出

    ( const char *format, ... );3)參數(shù)format:表示C 字符串包含了要打印的格式化數(shù)據(jù)。...:表示附加可變參數(shù),根據(jù)不同的 format 字符串,函數(shù)可能需要一系列的附加
    發(fā)表于 11-11 08:43

    LM3466 多 LED 電流平衡器技術(shù)手冊(cè)

    到電源的數(shù)或每個(gè) LED 的正向電壓 字符串。 如果任何 LED 燈在運(yùn)行過(guò)程中打開,LM3466 會(huì)自動(dòng)平衡通過(guò)所有剩余活動(dòng) LED 燈的電源電流。 如 因此,即使一些 LED
    的頭像 發(fā)表于 08-29 14:27 ?1041次閱讀
    LM3466 多<b class='flag-5'>串</b> LED 電流平衡器技術(shù)手冊(cè)

    labview如何生成一個(gè)帶字符串返回的dll

    labview如何生成一個(gè)dll,如下圖,要求一個(gè)輸入,類型是字符串,返回類型也是字符串
    發(fā)表于 08-28 23:20

    Python字符串逆序有幾種方式,代碼是什么

    對(duì)于一個(gè)給定的字符串,逆序輸出,這個(gè)任務(wù)對(duì)于python來(lái)說(shuō)是一種很簡(jiǎn)單的操作,畢竟強(qiáng)大的列表和字符串處理的一些列函數(shù)足以應(yīng)付這些問(wèn)題 了,今天總結(jié)了一下python中對(duì)于
    的頭像 發(fā)表于 08-28 14:44 ?1082次閱讀

    TPS92665-Q1 汽車級(jí)低噪聲16通道LED矩陣管理器摘要

    TPS92665 LED 矩陣管理器設(shè)備通過(guò)提供單獨(dú)的像素級(jí) LED 控制來(lái)實(shí)現(xiàn)完全動(dòng)態(tài)的自適應(yīng)照明解決方案。該器件包括四個(gè)串聯(lián)集成開關(guān)的四個(gè),用于旁路單個(gè) LED。單個(gè)子字符串允許器件接受單個(gè)或多個(gè)電流源。
    的頭像 發(fā)表于 08-21 18:13 ?1268次閱讀
    TPS92665-Q1 汽車級(jí)低噪聲16通道LED矩陣管理器摘要

    harmony-utils之StrUtil,字符串工具類

    harmony-utils之StrUtil,字符串工具類 harmony-utils 簡(jiǎn)介與說(shuō)明 [harmony-utils] 一款功能豐富且極易上手的HarmonyOS工具庫(kù),借助眾多實(shí)用工具類
    的頭像 發(fā)表于 07-03 11:32 ?632次閱讀

    PL2303口驅(qū)動(dòng)

    PL2303口驅(qū)動(dòng)
    發(fā)表于 04-09 16:02 ?4次下載

    STM32C031C6使用的是UART2通訊,通過(guò)printf()函數(shù)發(fā)送字符串時(shí),漢字錯(cuò)碼怎么解決?

    使用的是UART2通訊,通過(guò)printf()函數(shù)發(fā)送字符串時(shí),漢字錯(cuò)碼(見下圖),應(yīng)該是KEIL哪里沒(méi)有設(shè)置好的問(wèn)題。 啟用了UART2的中斷接收,可以接收到串口調(diào)試助手的數(shù)據(jù),但是緩存區(qū)的指針沒(méi)有歸零,下次接收時(shí)緩存區(qū)中的內(nèi)容接續(xù)(如下圖所示),不知道用什么命令來(lái)清除緩存區(qū)(即讓指針歸零)。
    發(fā)表于 03-07 12:30