Python - 查找特定字符串 [至少 2 个单词]
Python - Finding specific string [At least 2 words]
来自总 Python 个新手的另一个问题。
我有一个数组,用户可以输入 5 个不同的 words/sentences,在用户输入这 5 个后,用户再次输入 5 个文本之一,程序从数组中删除这个字符串,然后用户添加另一个字符串,然后它直接附加到 Index = 0.
但是当我想 运行 遍历这个数组并查找数组中的任何字符串是否至少有 2 个单词时,问题就开始了。
Text = []
for i in range(0, 5):
Text.append(input('Enter the text: '))
print (Text)
for i in range(0, 1):
Text.remove(input('Enter one of the texts you entered before: '))
print (Text)
for i in range(0, 1):
Text.insert(0,input('Enter Some Text: '))
print (Text)
for s in Text:
if s.isspace():
print(Text[s])
输出:
Enter the text: A
['A']
Enter the text: B
['A', 'B']
Enter the text: C D
['A', 'B', 'C D']
Enter the text: E
['A', 'B', 'C D', 'E']
Enter the text: F
['A', 'B', 'C D', 'E', 'F']
Enter one of the texts you entered before: F
['A', 'B', 'C D', 'E']
Enter Some Text: G
['G', 'A', 'B', 'C D', 'E']
Press any key to continue . . .
因此,我的代码没有做任何事情,我需要以某种方式查找是否有任何字符串至少包含 2 个单词并打印所有这些单词。
So, my code doesn't do anything, i need to somehow find if any of the
strings have at least 2 words and print all of those words.
也许遍历列表并拆分每个字符串。然后判断结果和是否大于1:
text_list = ['G', 'A', 'B', 'C D', 'E']
for i in range(len(text_list)):
if len(text_list[i].split(' ')) > 1:
print(text_list[i])
使用列表理解:
x = [w for w in text_list if len(w.split(' ')) > 1]
print(x)
for s in Text:
if s.isspace():
print(Text[s])
在上面的代码中,s 是完整的字符串,例如在您的示例中,s 可能是 'C D' 而这个字符串不是 space.
要检查 s 是否有两个或更多单词,您可以使用 .split(' ') 但在此之前,您必须 .strip() 您的字符串才能从边框中删除 spaces。
s = 'Hello World '
print(s.strip().split(' '))
>>> ['Hello', 'World']
在上面的例子中,s 有两个 space,所以 strip 删除最后一个 space 因为它是一个边框 space 然后 split 给你一个字符串列表相隔 spaces.
所以您的问题的解决方案可能是
for s in Text:
if len(s.strip().split(' ')) > 1:
print(s.strip().split(' '))
来自总 Python 个新手的另一个问题。
我有一个数组,用户可以输入 5 个不同的 words/sentences,在用户输入这 5 个后,用户再次输入 5 个文本之一,程序从数组中删除这个字符串,然后用户添加另一个字符串,然后它直接附加到 Index = 0.
但是当我想 运行 遍历这个数组并查找数组中的任何字符串是否至少有 2 个单词时,问题就开始了。
Text = []
for i in range(0, 5):
Text.append(input('Enter the text: '))
print (Text)
for i in range(0, 1):
Text.remove(input('Enter one of the texts you entered before: '))
print (Text)
for i in range(0, 1):
Text.insert(0,input('Enter Some Text: '))
print (Text)
for s in Text:
if s.isspace():
print(Text[s])
输出:
Enter the text: A ['A'] Enter the text: B ['A', 'B'] Enter the text: C D ['A', 'B', 'C D'] Enter the text: E ['A', 'B', 'C D', 'E'] Enter the text: F ['A', 'B', 'C D', 'E', 'F'] Enter one of the texts you entered before: F ['A', 'B', 'C D', 'E'] Enter Some Text: G ['G', 'A', 'B', 'C D', 'E'] Press any key to continue . . .
因此,我的代码没有做任何事情,我需要以某种方式查找是否有任何字符串至少包含 2 个单词并打印所有这些单词。
So, my code doesn't do anything, i need to somehow find if any of the strings have at least 2 words and print all of those words.
也许遍历列表并拆分每个字符串。然后判断结果和是否大于1:
text_list = ['G', 'A', 'B', 'C D', 'E']
for i in range(len(text_list)):
if len(text_list[i].split(' ')) > 1:
print(text_list[i])
使用列表理解:
x = [w for w in text_list if len(w.split(' ')) > 1]
print(x)
for s in Text:
if s.isspace():
print(Text[s])
在上面的代码中,s 是完整的字符串,例如在您的示例中,s 可能是 'C D' 而这个字符串不是 space.
要检查 s 是否有两个或更多单词,您可以使用 .split(' ') 但在此之前,您必须 .strip() 您的字符串才能从边框中删除 spaces。
s = 'Hello World '
print(s.strip().split(' '))
>>> ['Hello', 'World']
在上面的例子中,s 有两个 space,所以 strip 删除最后一个 space 因为它是一个边框 space 然后 split 给你一个字符串列表相隔 spaces.
所以您的问题的解决方案可能是
for s in Text:
if len(s.strip().split(' ')) > 1:
print(s.strip().split(' '))