我希望这是一个简单的问题!我正在尝试将数字反转,并在“偶数”位置给数字。当我尝试在一个字符串切片中执行此操作时,即使我期望更多,也只能得到一位数字。当我将其分为两部分时,会得到正确的答案,但是我不确定为什么。
例如,如果我有数字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
谢谢!诺亚
1::-2
表示从位置1(第二个字符)开始,然后一次向后两个字符。您想从字符串结尾附近开始,例如
num = 512341234
str(num)[-1::-2]
'42425'
num = 512341234
str(num)[-2::-2]
'3131'
但是,您必须选择-1
或-2
基于这些字符中的哪一个处于偶数位置(即基于字符串的长度)来执行此操作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句