【问题标题】:How would I check a string for a certain letter in Python?如何在 Python 中检查字符串中的某个字母?
【发布时间】:2011-06-20 03:43:32
【问题描述】:

我如何告诉 Python 检查下面的字母 x,然后打印“是”?以下是我到目前为止所拥有的......

dog = "xdasds"
 if "x" is in dog:
      print "Yes!"

【问题讨论】:

  • 是的,python 和英语很相似。但是你不能只用英语写;)

标签: python


【解决方案1】:

使用不带isin 关键字。

if "x" in dog:
    print "Yes!"

如果您想检查某个字符是否不存在,请使用not in

if "x" not in dog:
    print "No!"

【讨论】:

    【解决方案2】:

    in 关键字允许您循环遍历集合并检查集合中是否存在与元素相等的成员。

    在这种情况下,字符串只是一个字符列表:

    dog = "xdasds"
    if "x" in dog:
         print "Yes!"
    

    您也可以检查子字符串:

    >>> 'x' in "xdasds"
    True
    >>> 'xd' in "xdasds"
    True
    >>> 
    >>> 
    >>> 'xa' in "xdasds"
    False
    

    思考收藏:

    >>> 'x' in ['x', 'd', 'a', 's', 'd', 's']
    True
    >>> 
    

    您还可以测试用户定义类的集合成员资格。

    对于定义了 __contains__ 方法的用户定义类,当且仅当 y.__contains__(x) 为真时 x in y 为真。

    【讨论】:

      【解决方案3】:

      如果你想要一个引发错误的版本:

      "string to search".index("needle") 
      

      如果你想要一个返回 -1 的版本:

      "string to search".find("needle") 
      

      这比'in'语法更有效

      【讨论】:

      • 什么?你是怎么发现它更有效率的?你计时了吗?还是某种智慧?在我的设置中,您的代码要慢得多,更不用说不是 pythonic
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-16
      • 2011-12-24
      • 1970-01-01
      • 1970-01-01
      • 2016-01-21
      相关资源
      最近更新 更多