如何遍历字符串并返回在特定字符处停止的新字符串

时间:2017-08-28 16:11:04

标签: python string python-3.x

在2年的中断后重新使用Python。不记得从头开始循环字符串并停在某个字符处然后返回字符串的最佳方法。

gcloud beta app update --split-health-checks

我知道我需要创建一个新字符串,然后启动一个循环来遍历现有字符串。但后来我卡住了。我知道我需要返回新的字符串,但我不确定我的其余代码应该是什么样子。在此先感谢您的帮助。

6 个答案:

答案 0 :(得分:1)

使用字符串切片抓取所需字符串的部分。根据你的描述,你觉得你想要所有角色直到第一次出现这个角色是正确的吗?

试试这个例子。调整索引以获取所需字符串的部分。

long_string[0:i]

如果目标字符在字符串中不存在而没有捕获异常,则包含使用.index()的答案将无法正常工作。

答案 1 :(得分:1)

如果您只想从长字符串的开头获取子字符串直到某个字符串,您可以执行以下操作:

>>> ch = 'r'
>>> s = 'Hello, world!'
>>> print(s[:s.find(ch)])
#  Hello, wo

答案 2 :(得分:1)

try:
    print d[:d.index('y')]
except ValueError:
    print d

答案 3 :(得分:0)

如果停止字符肯定在字符串中,您可以使用.index(),它将在括号中找到第一次出现的事物的索引并切片[]

string = "hello op"
stopchar = " "

newstr = string[:string.index(stopchar)]

#newstr = "hello"

如果您不确定停止字符是否在字符串中,则应使用.find(),如果找不到该字符,则不会引发错误:

newstr = string[:string.find(stopchar)]

如果您不想停留在第一个角色并且希望在停止角色之前获得所有单词,则可以使用此列表理解:

string2 = "hello op today"
strings = [string2[:i] for i,c in enumerate(string2)
           if c == stopchar]
print (strings)

结果:

['hello', 'hello op']

答案 4 :(得分:0)

您可以创建一个包含字符串中每个字符的列表,然后遍历列表。

mystr = raw_input("Input: ")
newStr = list(mystr)

print(newStr)

然后您可以循环浏览列表以满足您的条件

答案 5 :(得分:0)

我认为splitindex更好(如果找不到字符则返回错误)或find(如果找不到字符则返回-1)。

>>> s,c='Who fwamed wodgew wabit?','w'
>>> s.split(c)[0]
'Who f'
>>> c='r'
>>> s.split(c)[0]
'Who fwamed wodgew wabit?' 

说明:split returns a list of the words in the string, using sep as the delimiter string。通过返回第一个项目,这完全按照指定的方式工作。