在Python中,反转字符串最快,最简单的方法是扩展切片[::-1]
。
print("hello world"[::-1]) # dlrow olleh
本文将向您展示几种在Python中反转字符串的方法。
-
[::-1]
逆序切片。 (好) -
[::-1]
切片工具作为函数。 (好) - 反向和联接(反向字符串和单词)(确定)
- Python循环(教育目的)
1. Python Slice [::-1]
在Python中,我们可以使用[::-1]
来反转字符串,也就是扩展slice 。 以下是切片语法:
string[start:stop:step]
-
start
–开始位置,默认为0。(包括此字符串) -
stop
–停止位置。 (不包括此字符串) -
step
–step
切片元素,默认为1 –取每个元素,如果step = 2,则取每个第二元素。
这是一个字符串“ abcdefghijk”及其内部索引。
Index 0 and -1
a b c d e f g h i j k
0 1 2 3 4 5 6 7 8 9 10 (index starts at 0)
-11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 (reverse index starts at -1)
1.1步骤默认为1。此切片[2:5]
将char从索引2移到索引5(不包括此char)。
print("abcdefghijk"[2:5]) # c d e
print("abcdefghijk"[2:5:1]) # c d e
"""
a b {c d e f} g h i j k
0 1 {2 3 4 5} 6 7 8 9 10 = index
"""
1.2此切片[2:]
从索引2到字符串的末尾获取char。
print("abcdefghijk"[2:]) # c d e f g h i j k
"""
a b {c d e f g h i j k}
0 1 {2 3 4 5 6 7 8 9 10} = index
"""
1.3对于此slice [2::2]
,步骤为2,它将获得从索引2开始到索引末尾的偶数索引(每个第二索引)。
print("abcdefghijk"[2::2]) # c e g i k
"""
a b {c} d {e} f {g} h {i} j {k}
0 1 {2} 3 {4} 5 {6} 7 {8} 9 {10} = index
"""
1.4对于此切片[::-1]
或[-1::-1]
,结果相同,字符串将反转。
print("abcdefghijk"[::-1]) # k j i h g f e d c b a
print("abcdefghijk"[-1::-1]) # k j i h g f e d c b a
"""
[::] = step default is 1.
|--------------------------------------------------->>>
{a} {b} {c} {d} {e} {f} {g} {h} {i} {j} {k}
{0} {1} {2} {3} {4} {5} {6} {7} {8} {9} {10}
[::-1] = if step is -1, reverse order.
<<<---------------------------------------------------|
{a} {b} {c} {d} {e} {f} {g} {h} {i} {j} {k}
{0} {1} {2} {3} {4} {5} {6} {7} {8} {9} {10}
"""
步长= -1
在Python slice中,如果步长为-1
,则表示倒序,并且起始位置默认为-1
。
1.5对于此切片[:4:-1]
,字符串将反向直到索引4(第5个位置,排除此字符)。
print("abcdefghijk"[:4:-1]) # k j i h g f
"""
[:4:-1]
<<<--------------------------|
a b c d e {f} {g} {h} {i} {j} {k}
0 1 2 3 4 {5} {6} {7} {8} {9} {10} = index
"""
1.6对于此切片[-2:4:-1]
或[-2:-7:-1]
,结果是相同的。 该分片以相反的顺序获取char,从索引-2或9开始,直到索引-7或4(不包括索引)。
print("abcdefghijk"[-2:4:-1]) # j i h g f
print("abcdefghijk"[-2:-7:-1]) # j i h g f
print("abcdefghijk"[9:4:-1]) # j i h g f
print("abcdefghijk"[9:-7:-1]) # j i h g f
"""
<<<-----------------------|
a b c d e {f} {g} {h} {i} {j} k
0 1 2 3 4 {5} {6} {7} {8} {9} 10 = index
-11 -10 -9 -8 -7 {-6} {-5} {-4} {-3} {-2} -1 = index (reverse order)
"""
2. [::-1]作为功能
相同的slice [::-1]
,它实现为一个函数。
def reversed_string(val, start=None, stop=None):
return val[start:stop:-1]
print(reversed_string("abcdefghijk")) # k j i h g f e d c b a
print(reversed_string("abcdefghijk", -2, 4)) # j i h g f
3.撤消并加入
3.1此Python代码段使用两个内置函数reserved()
和join()
来反转字符串。
string = "abcdefghijk"
print("".join(reversed(string)))
输出量
kjihgfedcba
3.2如果我们将相同的技术与split()
,我们可以反转单词。
string = "Hello World Python Slice"
print(" ".join(reversed(string.split(" "))))
输出量
Slice Python World Hello
4. Python循环
这段Python代码出于良好的教育目的,它将元素从最后一个索引循环到开始的索引,并将其放入列表中,最后,加入列表并返回一个字符串。
def reverse_a_string(string):
a_list = [] # a new list
index = len(string) # total length of a string, last index
while index: # loop from the last index to the beginning index
index -= 1 # index = index - 1 , reverse one by one
a_list.append(string[index]) # append to the list
return "".join(a_list) # join everything.
result = reverse_a_string("abcdefghijk")
print(result) # kjihgfedcba
输出量
kjihgfedcba
参考文献
翻译自: https://mkyong.com/python/how-to-reverse-a-string-in-python/