如何在python中将字符串剪切成一对字符串

时间:2014-09-13 14:53:07

标签: python string

我想做的是:

mystr = i_return_a_string()
fst_part, snd_part = mystr[:4], mystr[4:]

但如果可以这样做(使用内置函数/方法),我会更高兴,如:

fst_part, snd_part = i_return_a_string().cut_at(4)

这有点像str.partition,区别在于我想指定索引。

  1. 有没有这方法?

  2. 如果没有,我最好的方式是什么?

  3. 在这个例子中,mystr只需要作为(函数i_return_a_string的)返回值的临时存储,永远不会被再次引用,这让我有点不舒服。

3 个答案:

答案 0 :(得分:2)

总结所给出的评论(因为我不敢打开这个问题):

  • 使用切片是惯用的方法(@ZeroPiraeus)
  • 如果我真的不喜欢它,我可以编写自己的函数(@wwii,@ ZeroPiraeus& @Bobby的答案)或者我可以更改基本函数以便它已经返回一个元组(@Ghanima)
  • 使用临时变量非常好(@MartijnPieters,@ ZeroPiraeus)。
  • 如果我真的,真的,真的需要使用内置和等等,那么总是另一种方式(@myersjustinc')

答案 1 :(得分:1)

如果您真的觉得有必要(尽管我认为使用mystr[:4], mystr[4:]更有意义,就像在您的示例中一样),您可以使用正则表达式:

fst_part, snd_part = re.match(r'(.{4})(.*)', i_return_a_string()).groups()

答案 2 :(得分:0)

可能不是您正在寻找的确切语法,但也许这是你的小巷里的东西?

def i_return_a_string():
    return "examplestring"

def cut_at(example_string, index):
    return example_string[:index], example_string[index:]

fst_part, snd_part = cut_at(i_return_a_string(), 4)
print fst_part, snd_part