Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 返回意外值的字符串切片_Python_Slice - Fatal编程技术网

Python 返回意外值的字符串切片

Python 返回意外值的字符串切片,python,slice,Python,Slice,我希望这是一个简单的问题!我正在尝试反转一个数字,然后被赋予“偶数”位置的数字。当我尝试在一个字符串片段内执行此操作时,我只得到一个位数,即使我的体验更高。当我把它分成两片时,我得到了正确的答案,但我不确定为什么 例如,如果我有数字512341234,我希望它会给我3131,因为我首先颠倒了字符串(432143215),然后取偶数(4[3]2[1]4[3]2[1]5) 下面是我试图使用的代码,但将其作为一个片段只返回一位数,而将其作为两个片段则意味着返回预期值。为什么会这样 num = 5123

我希望这是一个简单的问题!我正在尝试反转一个数字,然后被赋予“偶数”位置的数字。当我尝试在一个字符串片段内执行此操作时,我只得到一个位数,即使我的体验更高。当我把它分成两片时,我得到了正确的答案,但我不确定为什么

例如,如果我有数字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
谢谢!
Noah

1::-2
表示从位置1(第二个字符)开始,然后一次后退两个字符。您希望从字符串末尾附近的某个位置开始,例如

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

但您必须根据这些字符中哪一个处于偶数位置(即根据字符串的长度)来选择
-1
-2

第一行说给我第二个元素,然后在第2步中向左走。所以1是正确的。第二条语句说的是-1的步骤,然后从第二个值开始,每第二个值给我一个。将第二条语句拆分,看看它是如何工作的,然后打印中间结果。您是否尝试过一步一步地遍历代码?但将其作为一个切片只返回一位数,而将其作为两个切片则意味着返回预期值。不过,这不是唯一的区别!我认为你的最后一句话不对。无论字符串的长度如何,str(num)[-2::-2]都将给出正确的result@IoaTzimas:问题是“偶数位置”;我想那可能是从弦的开始算起的。它可能是从最低有效位开始的。我认为这个问题的意思是“反向字符串的偶数位置”
'42425'
num = 512341234
str(num)[-2::-2]
'3131'