字符串切片返回意外值

诺亚

我希望这是一个简单的问题!我正在尝试将数字反转,并在“偶数”位置给数字。当我尝试在一个字符串切片中执行此操作时,即使我期望更多,也只能得到一位数字。当我将其分为两部分时,会得到正确的答案,但是我不确定为什么。

例如,如果我有数字512341234,我希望它能给我3131,因为我首先反转了字符串(432143215),然后取了偶数位置数字(4 [3] 2 [1] 4 [3] 2 [1] 5)。

下面是我尝试用来使其工作的代码,但是将其作为一个切片仅返回一位数字,而将其作为两个表示将返回期望值。为什么是这样?

num = 512341234
str(num)[1::-2] #returns 1
str(num)[::-1][1::2] #returns 3131

谢谢!诺亚

Ry-

1::-2表示从位置1(第二个字符)开始,然后一次向后两个字符。您想从字符串结尾附近开始,例如

num = 512341234
str(num)[-1::-2]
'42425'
num = 512341234
str(num)[-2::-2]
'3131'

但是,您必须选择-1-2基于这些字符中的哪一个处于偶数位置(即基于字符串的长度)来执行此操作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章