我是 Python 新手,所以我可能会遗漏一些简单的东西。
我举了一个例子:
string = "The , world , is , a , happy , place "
我必须创建分隔的子字符串,
并分别打印它们和处理实例。这意味着在这个例子中我应该能够打印
The
world
is
a
happy
place
我可以采取什么方法?我试图使用字符串查找功能,但是
Str[0: Str.find(",") ]
无助于寻找第二、第三个实例。
尝试使用该split
功能。
在您的示例中:
string = "The , world , is , a , happy , place "
array = string.split(",")
for word in array:
print word
您的方法失败了,因为您将其编入索引以从开始到第一个“,”产生字符串。如果您然后将它从第一个“,”索引到下一个“,”并以这种方式遍历字符串,这可能会起作用。不过,拆分会更好。
字符串有一个split()
方法。它返回一个列表:
>>> string = "The , world , is , a , happy , place "
>>> string.split(' , ')
['The', 'world', 'is', 'a', 'happy', 'place ']
如您所见,最后一个字符串有一个尾随空格。拆分这种字符串的更好方法是:
>>> [substring.strip() for substring in string.split(',')]
['The', 'world', 'is', 'a', 'happy', 'place']
.strip()
去除字符串末端的空格。
使用for
循环打印单词。
得益于 Python 中方便的字符串方法,这很简单:
print "\n".join(token.strip() for token in string.split(","))
输出:
The
world
is
a
happy
place
顺便说一句,这个词string
是变量名的错误选择(string
Python 中有一个模块)。
另外的选择:
import re
string = "The , world , is , a , happy , place "
match = re.findall(r'[^\s,]+', string)
for m in match:
print m
输出
The
world
is
a
happy
place
查看演示
您也可以只使用match = re.findall(r'\w+', string)
,您将获得相同的输出。