以相反的顺序拆分字符串

Splitting a string in reverse order

提问人:PRASANTH K 提问时间:10/2/2023 最后编辑:Andrej KeselyPRASANTH K 更新时间:10/2/2023 访问量:25

问:

sub_string="CDC"
rstring=[ sub_string[-i] for i in range(len(sub_string))]

print(rstring)

当我打印 rstring 时,它会给出输出['C', 'C', 'D']

在此列表中,字母会自动排序,我不希望它们被排序

我该怎么做?

python-3.x 字符串

评论


答:

0赞 Andrej Kesely 10/2/2023 #1

现在从 to(包含)迭代。所以第一次迭代得到第一个字符,第二个最后一个字符,第三个中间字符。range()0len(sub_string) - 1D

改为从 to(包含)迭代:1len(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]