【问题标题】:What is the Python 3 equivalent of find ()?什么是 Python 3 中的 find()?
【发布时间】:2011-07-10 22:10:40
【问题描述】:

我正在为 Python 编写 MIT 开放课件,但对以下示例感到困难:

首先,我们将使用一些内置的 Python 函数。要使用这些函数,请包含以下语句 从字符串导入 * 在文件的开头。这将允许您使用 Python 字符串函数。特别是,如果您想在目标字符串目标中找到关键字字符串键的第一个匹配的起点,您可以使用 find 函数。 尝试运行一些示例,例如 find("atgacatgcacaagtatgcat","atgc") 请注意它如何返回目标中键的第一个实例的索引。另请注意,如果目标中不存在该键的实例,例如 find("atgacatgcacaagtatgcat","ggcc") 它返回值 -1。

python 2.4(左右)的课程,但我正在尝试在 Py3 中完成作业。学习过程中的差异。

【问题讨论】:

  • 使用字符串模块函数而不是字符串类方法已经被永远弃用了。那个开放的课件非常需要更新。

标签: python python-3.x


【解决方案1】:

使用字符串的.find() 方法,而不是string.find()。 (这在 python 2 中也有效,并且可能更可取)。

【讨论】:

  • 请注意,如果它找不到子字符串,或者它在字符串中的第一个位置(即 0 .. 长度 - 1),它会返回 -1。
【解决方案2】:

不还是find吗?来自documentation

str.find(sub[, start[, end]])

返回字符串中最低的索引 在哪里找到子字符串 sub ,例如 该子包含在切片中 s [开始:结束]。可选参数开始 和 end 被解释为 slice 符号。如果 sub 不是,则返回 -1 找到了。

【讨论】:

    【解决方案3】:
    str = "Python"
    

    在 Python2 中:

    string.find(str,"y")
    

    在 Python3 中:

    str.find("y")
    

    【讨论】:

      【解决方案4】:

      对于 Python2 和 Python3:

      if 'atgc' in 'atgacatgcacaagtatgcat':
          #do something
      

      【讨论】:

        【解决方案5】:
        name = "ALIEN"      # complete String
        
        letter = 'E'               # substring 
        
        #string.find(substring[start:end])
        
        name.find(letter[:])
        

        输出:3

        【讨论】:

          猜你喜欢
          • 2012-11-27
          • 2015-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-08-30
          • 2019-12-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多