Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用显式索引写入s[:-1]_Python_Python 3.x - Fatal编程技术网

Python 使用显式索引写入s[:-1]

Python 使用显式索引写入s[:-1],python,python-3.x,Python,Python 3.x,我无法编写s[:-1]来使用显式索引反转字符串s。我想写s[a:b:-1],但我不知道写a和b要写什么。这是一个代码示例,它应该生成fedcba: s = 'abcdef' s[::-1] 从文件中: 切片索引具有有用的默认值;省略的第一个索引默认为 zero,省略的第二个索引默认为所选字符串的大小 切片的 我想写s[a:b:-1],但我不知道a和b应该写什么 好了: >>> s = 'abcdef' >>> a = len(s) - 1 >>

我无法编写
s[:-1]
来使用显式索引反转字符串
s
。我想写
s[a:b:-1]
,但我不知道写
a
b
要写什么。这是一个代码示例,它应该生成
fedcba

s = 'abcdef'
s[::-1]
从文件中:

切片索引具有有用的默认值;省略的第一个索引默认为 zero,省略的第二个索引默认为所选字符串的大小 切片的

我想写s[a:b:-1],但我不知道a和b应该写什么

好了:

>>> s = 'abcdef'
>>> a =  len(s) - 1 
>>> b = -len(s) - 1 
>>> s[a:b:-1]
'fedcba'
这应该可以做到

s[len(s)::-1]

如果您真的想填充所有3个占位符,您可以这样做

s[len(s):None:-1]
编辑:正如@deceze所建议的,这也适用

s[None:None:-1]

以下是适用于a和b的值:

lst = list('abcd')

a = b = None
print (lst[a:b:-1]) # returns ['d', 'c', 'b', 'a']

a = len(lst)
b = 0 - len(lst) - 1 # b = -5

print (lst[a:b:-1]) # returns ['d', 'c', 'b', 'a']

我不明白你在问什么。你为什么“不能”写
s[::-1]
?您可以编写它并生成您想要的输出。@mkrieger1我可以-我只是想了解如何使用显式索引编写它。这是一个有效的问题-我应该能够使用
s[a:b:-1]
来写这个问题,其中a,b是一些表达式。
s[len(s):None:-1]
似乎有效这里还有一个还没有列出的问题:
s[-1:-len(s)-1:-1]
,尽管
s[None:None:-1]
可能更具可读性。我认为这可以归结为一个问题:它本质上是问“为什么使用-1作为
stop
value不能按预期工作”。或者:在
a
占位符中提供显式值,但在
b
占位符中不提供显式值;OP两者都想要。如果你解释一下你提供的代码是如何回答这个问题的,这将是一个更好的答案。
None
一开始也可以……好吧,这就是当你将它留空时会发生的情况,它变为
None
,Python处理它。所以我认为这仍然不是一个答案。@Asocia如果问题是找到
a,b,c
的值,用
s[a:b:c]
复制
s[:-1]
的行为,那么
None
肯定是一个有效的解决方案。此外,省略的索引默认为零或字符串的大小,至少如问题中所述。@deceze那么为什么@Pani回答了
s[len(s):None:-1]
,而不是
s[None:None:-1]
?他们试图找到
a
len(s)
a
的有效值,试图找到
b
,但找不到
None
。暴露明显的,
,不应被视为答案。