字符串的最后一个字符未被拾取

时间:2016-11-25 22:19:42

标签: python arrays string list

尝试解决我可以反转字符串中每个单词的问题,因为没有" \ 0"在python中,与C不同,我的逻辑是无法获取字符串的最后一个字符。 任何想法如何修复代码

没有太多的变化
Input  = This is an example
Output = sihT si na elpmaxe 

import os
import string

a = "This is an example"
temp=[]
store=[]
print(a)
x=0
while (x <= len(a)-1):

    if ((a[x] != " ") and (x != len(a)-1)):
       temp.append(a[x])
       x += 1

    else:
            temp.reverse()
            store.extend(temp)
            store.append(' ')
            del temp[:]
            x += 1

str1 = ''.join(store)
print (str1)

我的输出正在截断最后一个字符

sihT si na lpmaxe 

3 个答案:

答案 0 :(得分:2)

x != len(a)-1所示,您自己排除了最后一个角色。您无需检查temp,以便可以在temp字符串中添加最后一个字符。退出循环后可以添加的最后一个单词,它将包含在mysql2变量中。这个提示只是为了让您的代码正常工作,否则您可以按照人们的建议以更短的方式在python中完成。

答案 1 :(得分:0)

您已删除-1中的len(a)-1并更改了and中的顺序(因此,当x == len(a)时,a[x]将无法获得"index out of range" while (x <= len(a)): if (x != len(a)) and (a[x] != " "): {1}})

import os
import string

a = "This is an example"
temp = []
store = []
print(a)

x = 0

while (x <= len(a)):

    if (x != len(a)) and (a[x] != " "):
        temp.append(a[x])
        x += 1
    else:
        temp.reverse()
        store.extend(temp)
        store.append(' ')
        del temp[:]
        x += 1

str1 = ''.join(store)
print(str1)

适用于我的完整版

if [ "$a" = "b" ]

答案 2 :(得分:0)

这很简单,不需要额外的循环:

a = "This is an example"
print(a)
str1 = " ".join([word[::-1] for word in a.split(" ")])
print(str1)

输入和输出:

This is an example
sihT si na elpmaxe