Python中"int(a [:: - 1])"的含义是什么?

sof*_*iac 22 python python-2.7 python-3.x

我不明白这.我在人们的代码中看到了这一点.但无法弄清楚它的作用.这是在Python中.

str(int(a[::-1]))
Run Code Online (Sandbox Code Playgroud)

Ana*_*mar 47

Assumming a是一个字符串.python中的Slice表示法具有以下语法 -

list[<start>:<stop>:<step>]
Run Code Online (Sandbox Code Playgroud)

所以,当你这样做时a[::-1],它从结束开始,向第一个开始,采用每个元素.所以它逆转了.这也适用于列表/元组.

示例 -

>>> a = '1232'
>>> a[::-1]
'2321'
Run Code Online (Sandbox Code Playgroud)

然后你将它转换为int然后回到字符串(虽然不知道你为什么这样做),这只是给你回来的字符串.

  • 要获得相同的结果,您不能填写所有三个,您可以将 &lt;start&gt; 设为 `len(a)-1`,但是没有可以用来获取第一个元素的 `&lt;stop&gt;` 索引。示例 - `a[len(a)-1::-1]`。这是因为 `&lt;stop&gt;` 索引是独占的,即不包含该索引处的元素,而且 `-1` 表示最后一个元素,所以没有索引可以用来包含第一个元素,其他比留白 (4认同)
  • 如果我明确填写所有三个索引,它们会是什么? (3认同)
  • 从 int 到 string 的转换可能是删除反转字符串中前导零的一种巧妙方法 (3认同)

Abh*_*ahi 12

在中使用的表示法

a[::-1]
Run Code Online (Sandbox Code Playgroud)

表示对于给定的字符串/列表/元组,您可以使用以下格式对所述对象进行切片

<object_name>[<start_index>, <stop_index>, <step>]
Run Code Online (Sandbox Code Playgroud)

这意味着该对象将从给定的起始索引中切出每个“步骤”索引,直到终止索引(不包括终止索引),然后将其返回给您。

如果缺少起始索引或终止索引,则它将使用默认值作为给定字符串/列表/元组的起始索引和终止索引。如果该步骤留为空白,则它将采用默认值1,即它会遍历每个索引。

所以,

a = '1234'
print a[::2]
Run Code Online (Sandbox Code Playgroud)

会打印

13
Run Code Online (Sandbox Code Playgroud)

现在,这里的索引以及步数都支持负数。因此,如果您给出-1索引,它将转换为len(a)-1索引。并且,如果将-x用作步数,则它将从起始索引开始逐步执​​行第x个值,直到反向终止索引为止。例如

a = '1234'
print a[3:0:-1]
Run Code Online (Sandbox Code Playgroud)

这将返回

432
Run Code Online (Sandbox Code Playgroud)

注意,它不返回4321,因为不包含停止索引。

现在就您而言

str(int(a[::-1]))
Run Code Online (Sandbox Code Playgroud)

只会反转存储在字符串中的给定整数,然后将其转换回字符串

即“ 1234”->“ 4321”-> 4321->“ 4321”

如果您只是想反转给定的字符串,那么a [::-1]就可以了。