简体   繁体   English

在 while 循环中将字母附加到列表中

[英]Appending letters to a list in a while loop

I am trying to append the first word of a sentence to an empty list.我正在尝试将句子的第一个单词附加到一个空列表中。 The current code is below:当前代码如下:

sentence = input("Enter sentence: ")

subject = []
print (subject)

x = 0
while True:
    letter = sentence[x]
    if letter != " ":
        print (letter)
        subject.append(letter)
        x = x + 1

print (subject)

It currently prints this:它目前打印:

Enter sentence: Cherries are red fruit

[]
C
h
e
r
r
i
e
s

It seems to ignore my attempt to append the result to the empty list... Help, please!它似乎忽略了我将结果附加到空列表的尝试...请帮助!

You'd better use for loop, it's less error-prone:你最好使用for循环,它不容易出错:

sentence = input('Enter sentence: ')

subject = []
print(subject)

for letter in sentence:
    if letter == ' ':
        break
    else:
        print(letter)
        subject.append(letter)

print(subject)

If you want to break a sentence into words, there's astr.split method, which can help you in simple cases:如果你想把一个句子分成单词,有一个str.split方法,它可以在简单的情况下帮助你:

words = sentence.split()
first_word = words[0] if words else None
print(first_word)

Why not use the split() function instead of appending one letter at a time:为什么不使用split()函数而不是一次附加一个字母:

sentence = input("Enter sentence: ")
split_sentence = sentence.split(" ")
subject = []
subject.append(split_sentence[0])
print (subject)

or even more simplier:或者更简单:

sentence = input("Enter sentence: ").split(" ")
subject = []
subject.append(sentence[0])
print (subject)

or even if you are only wanting one input you don't have to append或者即使您只想要一个输入,您也不必附加

sentence = input("Enter sentence: ").split(" ")
subject = sentence[0]
print (subject)

split() , splits a string define by the parameter and returns a list. split() ,拆分由参数定义的字符串并返回一个列表。

With while loop:使用 while 循环:

sentence='Nice weather outside'
subject = []
x = 0
while x < len(sentence):
    letter = sentence[x]
    subject.append(letter)
    x = x + 1
print(subject)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM