我希望这是一个简单的问题!我正在尝试反转一个数字,并给出“偶数”位置的数字。当我尝试在一个字符串切片中执行此操作时,即使我期望更多,我也只会得到一个数字。当我将它分为两部分时,我得到了正确答案,但我不确定为什么。
例如,如果我有数字 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
) 来执行此操作。
关于python - 字符串切片返回意外值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64396434/