zoukankan      html  css  js  c++  java
  • Python判断一个字符串中是否存在多个子串中的一个

    在使用python的开发过程中,常常需要判断,字符串中是否存在子串的问题,

    但判断一个字符串中是否存在多个字串中的一个时,如if (a or b) in c或者if x contains a|b|c|d…

    似乎就需要借助for做循环判断,那么这种情况有没有更pythonic的方法呢?


    判断一个字符串中是否存在某一个子串
    判断一个字符串中是否存在子串通常使用in关键词,如下:

    >>> a = "I Love Crystal!And I Hate Tom!"
    >>> b = "Crystal"
    >>> c = "Tom"
    >>> d = "Jessie"
    >>> print(b in a)
    True
    >>> print(d in a)
    False
    >>>


    in关键词可以用来判断一个字符串中是否含有一个子串

    如"Crystal"在"I Love Crystal!And I Hate Tom!"中,"Jessie"不在"I Love Crystal!And I Hate Tom!"中。


    判断一个字符中是否含有多个子串中的一个
    问题来了

    如果如果我想判断```"I Love Crystal!And I Hate Tom!"```是否含有```"Crystal", "Tom", "Jessie"```中的任意一个

    只要有其中的任意一个就输出True,应该怎么判断呢?

    >>> a = "I Love Crystal!And I Hate Tom!"
    >>> name_list = ["Jessie", "Tom", "Crystal"]
    >>> for name in name_list:
    ... if name in a:
    ... print("got you!")
    ... break
    ... 
    got you!
    >>>

    我们发现,代码结构看起来还是不够pythonic

    有没有更加优雅的写法呢?

    可以使用内置的any()函数。

    >>> a = "I Love Crystal!And I Hate Tom!"
    >>> name_list = ["Jessie", "Tom", "Crystal"]
    >>> print(any(name in a for name in name_list))
    True
    >>> name_list = ["Jessie", "Tomi", "Rose"]
    >>> print(any(name in a for name in name_list))
    False
    >>>

    from: https://www.jianshu.com/p/da382b11dc3e

  • 相关阅读:
    Wireshark使用
    21世纪最需要的7种人才
    .net中生成ssl web证书
    flash10a.ocx无法删除的解决
    iframe无刷新异步上传
    jquery验证网址输入
    jquery验证省市级联
    .net代码生成器自动生成DAL和BLL类库
    jquery实现checkbox全选(不全选)
    Web.config配置文件初识
  • 原文地址:https://www.cnblogs.com/hankleo/p/11833703.html
Copyright © 2011-2022 走看看