我是编码的初学者.我正在寻找这个问题的解决方案:我应该编写一个函数,它可以很好地接受带有单词和数字的文本字符串,用空格分隔,如果连续有3个单词则输出True.
例:
'123 a b c' == True
'a 123 b c' == False
Run Code Online (Sandbox Code Playgroud)
我尝试过的:
def 3_in_a_row(words):
words = words.split(" ")
for i in range(len(words)):
return words[i].isalpha() and words[i+1].isalpha() and words[i+2].isalpha()
Run Code Online (Sandbox Code Playgroud)
如果我尝试这个,我会收到一个list index out of range错误,因为当我接近列表的末尾时,i检查后没有2个单词.
限制此功能的最佳方法是什么,以便在i检查后没有2个项目时停止?有什么更好的方法呢?
这似乎是一个应该已经有答案的问题,但我没有找到。如果有人知道已经回答了这个问题的另一个问题,请发表带有链接的评论。
我的问题是,有没有办法使用 .format 方法将列表中的项目输入到字符串中?使用特定索引来格式化是一种痛苦,我想知道是否可以使用“for i in list”技术。
所以而不是这个:
x = [1, 2, 3, 4, 5]
print 'The first 4 items in my list are {}, {}, {}, {}'.format([x[0], x[1], x[2], x[3])
Run Code Online (Sandbox Code Playgroud)
我可以做这样的事情:
x = [1, 2, 3, 4, 5]
print 'The first 4 items in my list are {}, {}, {}, {}'.format([i for i in x if i < 5])
Run Code Online (Sandbox Code Playgroud)
如果我按照这些方式尝试某些操作,它将不起作用,并且会出现“元组索引超出范围”错误,因为它仅将其视为 1 个项目而不是 4 个单独的项目。我只是想知道这是否可能。