【问题标题】:Python index function inquiryPython索引函数查询
【发布时间】:2015-10-29 05:02:20
【问题描述】:

如果我有一个name = 'Peter Piper Picker',并且我希望我的函数选择性地隔离“Picker”,我该怎么办?我的意思不是像name[12:],而是像它在哪里挑选出名称末尾之前的最后一个空格并从那里开始子串?我知道 index 函数有两个额外的参数,但我不知道如何在我想name[' ', name.split(len(name.split()-1)), name[len(name)-1]] 的这个设置中正确应用它们。

【问题讨论】:

    标签: python list indexing


    【解决方案1】:

    你可以使用strsplit方法。

    name = 'Peter Piper Picker' 
    # name.split() will return a list ['Peter', 'Piper', 'Picker'], we need its last element   
    ret = name.split()[-1] 
    

    那么ret 就是'Picker'

    【讨论】:

      【解决方案2】:

      你也可以这样做:

      name = 'Peter Piper Picker'
      name.rsplit(" ",1)[1]
      'Picker'
      

      当使用rsplit时,你会得到如下输出:

      name.rsplit(" ",1)
      ['Peter Piper', 'Picker']
      

      流程:

      你从右边分裂,你用“”分裂一次并得到第二个元素

      信息:

      更多关于rsplit look into rsplit official document

      【讨论】:

        【解决方案3】:
        >>> name = 'Peter Piper Picker'
        >>> a = name.split()
        >>> a[len(a)-1]
        'Picker'
        

        【讨论】:

          【解决方案4】:

          神秘的方式:

          >>> name[[i for i, c in enumerate(name) if c == ' '][-1]+1:]
          'Picker'
          
          • [i for i, c in enumerate(name) if c == ' '] - 这将为您提供字符串中包含空格 (' ') 的所有索引
          • [i for i, c in enumerate(name) if c == ' '][-1] - 这将为您提供最后一个空格的索引
          • [i for i, c in enumerate(name) if c == ' '][-1]+1 - 这是你想要的名字部分开始的位置

          最后,您将name 切片。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2016-12-03
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-12-04
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多