Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.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 子串切片_Python_Python 3.x_Substring_Slice - Fatal编程技术网

Python 子串切片

Python 子串切片,python,python-3.x,substring,slice,Python,Python 3.x,Substring,Slice,我被要求有一个字符串循环并以相反的方式打印。我可以让它这样做,但为什么praytell是最后一个开始的字母 data = "Why am I doing this is reverse order." for index in range(len(data)): print(index, data[-index]) 0 W 1 . 2 r 3 e 4 d 5 r 6 o 7 ... 啊,这是我最近的一次……没有添加数据[:-index],-index:]……他们都错了 data

我被要求有一个字符串循环并以相反的方式打印。我可以让它这样做,但为什么praytell是最后一个开始的字母

data = "Why am I doing this is reverse order."

for index in range(len(data)):
    print(index, data[-index])

0 W
1 .
2 r
3 e
4 d
5 r
6 o
7  
...
啊,这是我最近的一次……没有添加数据[:-index],-index:]……他们都错了

data = "Why am I doing this is reverse order."

for index in range(len(data)):
    print(index, data[-index])


0 W
1 .
2 r
3 e
4 d
5 r
6 o
7  
...

不要只使用
-
,而是将索引分为字符串len:

data = "Why am I doing this is reverse order."

l = len(data) - 1
for index in range(l+1):
    print(index, data[l-index])
输出:

0 .
1 r
2 e
...
34 y
35 h
36 W
或者,做这件事的pythonic方法是使用
反向

for l in reversed(data):
    print(l)

您也可以使用切片,
数据[::-1]
,但我会避免这种情况,除非您希望字符串的反向副本。

如果您希望将其打印为句子,您还可以:

reversed_data=data[:-1]
打印(反向打印数据)

reversed\u data=reversed(数据)
打印(“.join(列表(反向数据)))
或者,如果您希望一个字符接一个字符:

reversed_data=data[:-1]
对于反向_数据中的字符:
打印(字符)
reversed\u data=reversed(数据)
对于反向_数据中的字符:
打印(字符)

实现不起作用的原因是
范围(len(data))
从0到n-1开始。但是,当get
data[-index]
其中index为0时,它返回字符串的0元素;第一个字母

一个简单的实现是:

data = 'Hello world!'

# Print every letter on different line
for x in data[::-1]:
    print(x)

# Print the reverse string on one line
print(data[::-1])

有关python中切片的工作原理,请参阅。

print(index,data[-index-1])
,因为列表具有基于0的正向索引,但您只能反向执行(-1,而不是-0是最后一个索引)。因此,您最终会循环到列表的开头。在本教程的部分中有一个很好的表,显示了正索引和负索引是如何工作的。这是第十六个例子——或者在页面中搜索
一种方法来记住切片是如何工作的。非常感谢。我现在完全明白了=DMy图书可以解释它,所以感谢您提供的附加信息/链接。这里的每个人都很乐于助人。我非常感谢你的帮助和迅速的反应。很好。我明白我的错误了。谢谢=欢迎戴眼镜,考虑阅读:酷。也感谢您的链接。=)