如何以更好和更短的方式获得相同的必需字符串

时间:2014-05-22 08:09:22

标签: python string

s = 'myName.Country.myHeight'

required = s.split('.')[0]+'.'+s.split('.')[1]

print required
myName.Country

我怎样才能得到相同的'要求'字符串越来越短?

3 个答案:

答案 0 :(得分:8)

像这样使用str.rpartition

s = 'myName.Country.myHeight'
print s.rpartition(".")[0]
# myName.Country

rpartition返回一个三元素元组,

  1. 第一个元素是分隔符

  2. 之前的字符串
  3. 然后是分隔符

  4. 和分隔符后的字符串

  5. 所以,在我们的例子中,

    s = 'myName.Country.myHeight'
    print s.rpartition(".")
    # ('myName.Country', '.', 'myHeight')
    

    我们只挑选了第一个元素。

    注意:如果你想从左边做,而不是从右边做,我们有一个名为str.partition的姐妹函数。

答案 1 :(得分:3)

您有几个选择。

1

print s.rsplit('.',1)[0]

2

print s[:s.rfind('.')]

3

print s.rpartition('.')[0]

答案 2 :(得分:1)

嗯,这对我来说似乎很好......但是我可以想到以下几种其他方式:

required = ".".join(s.split(".")[0:2])  // only one split

// using regular expressions
import re
required = re.sub(r"\.[^\.]$", "", s)

正则表达式仅在最后一个要分割的部分没有点时才有效。