'result [::-1]'是什么意思?

发布于 2021-01-29 16:07:08

我刚刚遇到以下使我有些困惑的python代码:

 res = self.result[::-1].encode('hex')

编码内容非常清楚,应将其表示为十六进制值。但是,这个self.result [::-1]是什么意思,尤其是冒号?

关注者
0
被浏览
186
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    它代表从结果中获取的“切片”。第一个元素是开始位置,第二个元素是结束位置(非包含在内),第三个元素是步骤。冒号之前/之后的空值表示您是从开头(s[:3])开始还是延伸到结尾(s[3:])。您也可以在此处包括实际数字,但是在可能的情况下将它们忽略不计。

    例如:

    In [1]: s = 'abcdefg'
    

    返回从头开始并在索引位置2处停止的字符串片段:

    In [2]: s[:3]
    Out[2]: 'abc'
    

    返回从第三个索引位置开始并延伸到结尾的字符串的片段:

    In [3]: s[3:]
    Out[3]: 'defg'
    

    返回从结尾开始并一次后退一个元素的字符串片段:

    In [4]: s[::-1]
    Out[4]: 'gfedcba'
    

    返回包含所有其他元素的字符串的片段:

    In [5]: s[::2]
    Out[5]: 'aceg'
    

    它们也可以相互结合使用。在这里,我们返回一个切片,该切片返回从索引位置6开始到索引位置2的所有其他元素(请注意,s[:2:-2]这会更加惯用,但我选择了许多奇怪的字母:)):

    In [6]: s[6:2:-2]
    Out[6]: 'ge'
    

    step元素确定要返回的元素。在您的示例中,-1表示它将向后退格,一次仅一个元素。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看