提问人:PRASANTH K 提问时间:10/2/2023 最后编辑:Andrej KeselyPRASANTH K 更新时间:10/2/2023 访问量:25
以相反的顺序拆分字符串
Splitting a string in reverse order
问:
sub_string="CDC"
rstring=[ sub_string[-i] for i in range(len(sub_string))]
print(rstring)
当我打印 rstring 时,它会给出输出['C', 'C', 'D']
在此列表中,字母会自动排序,我不希望它们被排序
我该怎么做?
答:
0赞
Andrej Kesely
10/2/2023
#1
现在从 to(包含)迭代。所以第一次迭代得到第一个字符,第二个最后一个字符,第三个中间字符。range()
0
len(sub_string) - 1
D
改为从 to(包含)迭代:1
len(sub_string)
sub_string = "CDC"
rstring = [sub_string[-i] for i in range(1, len(sub_string) + 1)]
print(rstring)
指纹:
['C', 'D', 'C']
注意:例如,您可以执行相同的操作list(reversed(sub_string))
2赞
Daviid
10/2/2023
#2
它没有被排序:
sub_string="CDC"
rstring=[]
for i in range(len(sub_string)):
print(f"{sub_string[-i]=}, {-i=}")
rstring.append(sub_string[-i])
print(rstring)
输出
sub_string[-i]='C', -i=0
sub_string[-i]='C', -i=-1
sub_string[-i]='D', -i=-2
['C', 'C', 'D']
如果你知道负指数是如何工作的,你就会看到发生了什么。
你正在抓住第一个字母、最后一个字母和倒数第二个字母。
输出 12345,以便更容易查看:
sub_string[-i]='1', -i=0
sub_string[-i]='5', -i=-1
sub_string[-i]='4', -i=-2
sub_string[-i]='3', -i=-3
sub_string[-i]='2', -i=-4
['1', '5', '4', '3', '2']
要记住的另一件事是 python 中的字符串是可迭代的,因此也可以反转字符串sub_string[::-1]
评论