Python - 查找特定字符串[至少2个字]

时间:2017-11-06 02:58:40

标签: python arrays loops spacing

来自Python新手的另一个问题。

我有一个数组,用户可以输入5个不同的单词/句子,用户输入5个后,用户再次输入5个文本中的一个,程序从数组中删除该字符串,而不是用户添加另一个字符串,它直接附加到指数= 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个单词并打印所有这些单词。

2 个答案:

答案 0 :(得分:1)

for s in Text:
if s.isspace():
    print(Text[s])

在上面的代码中,s是完整的字符串,例如在你的例子中,s可能是'C D',而且这个字符串不是空格。

要检查s是否有两个或更多单词,您可以使用.split(''),但在此之前,您必须使用.strip()字符串从边框中删除空格。

s = 'Hello World '
print(s.strip().split(' '))
>>> ['Hello', 'World']

在上面的示例中,s有两个空格,因此strip会删除最后一个空格,因为它是一个边框空格,然后split会给出一个由空格分隔的字符串列表。

所以问题的解决方案可能是

for s in Text:
    if len(s.strip().split(' ')) > 1:
        print(s.strip().split(' '))

答案 1 :(得分:0)

  

所以,我的代码没有做任何事情,我需要以某种方式找到任何一个   字符串至少有2个单词并打印所有这些单词。

也许循环遍历列表并拆分每个字符串。然后确定结果总和是否大于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)