【发布时间】:2020-10-16 21:10:11
【问题描述】:
我希望这是一个简单的问题!我正在尝试反转一个数字,并在“偶数”位置给出数字。当我尝试在一个字符串切片中执行此操作时,我只得到一个数字,即使我期待更多。当我把它分成两片时,我得到了正确的答案,但我不确定为什么。
例如,如果我有数字 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
谢谢! 诺亚
【问题讨论】:
-
第一行说给我第二个元素,然后以 2 的步长向左走。所以 1 是正确的。第二条语句以-1 为步长,然后从第二个值开始给我每个第二个值。拆分第二条语句以查看其工作原理并打印中间结果。
-
您是否尝试过逐步浏览代码? 但将其作为一个切片仅返回单个数字,而将其作为两个切片意味着它返回预期值。但这不是唯一的区别!