我只是来越过这让我困惑了一下下面的Python代码:
res = self.result[::-1].encode('hex')
该编码的东西是很清楚的,它应该被表示为十六进制值。 然而,这是什么self.result [:: - 1]的意思,尤其是冒号?
我只是来越过这让我困惑了一下下面的Python代码:
res = self.result[::-1].encode('hex')
该编码的东西是很清楚的,它应该被表示为十六进制值。 然而,这是什么self.result [:: - 1]的意思,尤其是冒号?
它代表了“切片”从结果服用。 第一元件是起始位置,第二是端部(不含),三是步骤。 一个空值之前/冒号表示之后你要么从头开始( 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'
步骤元件确定返回的元素。 在您的例子中, -1
表示它会在时间上倒退一步,通过该项目,一个元素。
这是一个常见的成语是反转的列表。
a = ['a', 'b', 'c', 'd']
b = a[::-1]
print b
['d', 'c', 'b', 'a']
你可以阅读“扩展片” 在这里 。