python - 字符串切片返回意外值

标签 python slice

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

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

相关文章:

python - Django ORM 的结果不一致

python - 在函数中返回多个值时出现问题?

python - 将两个 pandas 数据框与第一个数据框的索引连接起来?

variables - 变量的不同行为和函数的返回值

python - 使用 amsmath 和 sfmath 进行绘图标记的 Latex 字体样式问题

python - 尝试创建生成器对象但获取不响应生成器调用的函数对象

go - 如何从 Golang 中的 slice 中删除元素

python - python中的文件名链

go - 如何读取数组或 slice 的子集