📜  Python中遍历字符串的单词

📅  最后修改于: 2020-07-29 15:47:01             🧑  作者: Mango

给定一个字符串,其中包含许多由空格分隔的单词,请编写一个Python程序来迭代字符串的这些单词。

例子:

输入: str = “mangodoc is a computer science portal for Geeks"
输出:
mangodoc
is
a
computer
science
portal
for
Geeks

输入: str = “Geeks for Geeks"
输出:
Geeks
for
Geeks

方法1:使用split()

使用split()函数,我们可以将字符串分成单词列表,如果希望完成这一特定任务,它是最通用和推荐的方法。但是缺点是在包含标点符号的字符串中失败。

# Python3代码演示使用split()从字符串中提取单词  
    
# 初始化字符串    
test_string = "mangodoc is a computer science portal for Geeks"
    
# 打印原始字符串  
print ("原始字符串是 : " +  test_string)  
    
# 使用split()从字符串中提取单词  
res = test_string.split()  
    
# 打印结果  
print ("\n字符串是") 
for i in res: 
    print(i) 

输出:

原始字符串是 : mangodoc is a computer science portal for Geeks

字符串是
mangodoc
is
a
computer
science
portal
for
Geeks

方法2:使用re.findall()

如上所述,在包含所有特殊字符和标点符号的情况下,使用split在字符串中查找单词的常规方法可能会失败,因此需要使用正则表达式来执行此任务。findall()函数在过滤字符串并提取忽略标点符号的单词后返回列表。

# Python3代码演示使用正则表达式(findall())从字符串中提取单词
import re  
    
# 初始化字符串    
test_string = "mangodoc is a computer science portal for Geeks !!!"
    
# 打印原始字符串  
print ("原始字符串是 : " +  test_string)  
    
# 使用regex(findall())从字符串中提取单词  
res = re.findall(r'\w+', test_string)  
    
# 打印结果  
print ("\n字符串是") 
for i in res: 
    print(i) 

输出:

原始字符串是 : mangodoc is a computer science portal for Geeks!!!

字符串是
mangodoc
is
a
computer
science
portal
for
Geeks