什么是Python的输出[: - 1]的Ruby等价物?

时间:2010-03-20 21:34:24

标签: python ruby

在Python中,如果我想获得字符串的前n个字符减去最后一个字符,我会这样做:

output = 'stackoverflow'
print output[:-1]

什么是Ruby等价物?

5 个答案:

答案 0 :(得分:11)

我不想过于挑剔,但如果你想更像Python的方法,而不是"StackOverflow"[0..-2],你可以"StackOverflow"[0...-1]做同样的结果。

在Ruby中,具有3个点的范围排除了右边的参数,其中具有两个点的范围包括它。因此,在字符串切片的情况下,三个点更接近Python的语法。

答案 1 :(得分:4)

您当前的Ruby不会按照您的描述执行操作:它会切断最后一个字符,但它也会反转字符串。

与Python代码段最接近的等价物是

output = 'stackoverflow'
puts output[0...-1]

您最初使用的是..而不是...(如果您执行output[0..-2]会有效);前者被封闭,后者被封闭。切片 - 以及Python中的大部分内容 - 都是封闭式的。

答案 2 :(得分:2)

"stackoverflow"[0..-2]将返回"stackoverflo"

答案 3 :(得分:1)

如果你想要的只是删除字符串的最后一个字符,你也可以使用'chop'方法:

puts output.chop

puts output.chop!

答案 4 :(得分:1)

如果您只想删除最后一个字符,也可以

output.chop