Python 子串切片
我被要求有一个字符串循环并以相反的方式打印。我可以让它这样做,但为什么praytell是最后一个开始的字母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
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开始。但是,当getdata[-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图书可以解释它,所以感谢您提供的附加信息/链接。这里的每个人都很乐于助人。我非常感谢你的帮助和迅速的反应。很好。我明白我的错误了。谢谢=欢迎戴眼镜,考虑阅读:酷。也感谢您的链接。=)