【问题标题】:Appending letters to a list in a while loop在while循环中将字母附加到列表中
【发布时间】:2017-02-11 16:28:57
【问题描述】:

我正在尝试将句子的第一个单词附加到一个空列表中。当前代码如下:

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)

它当前打印这个:

Enter sentence: Cherries are red fruit

[]
C
h
e
r
r
i
e
s

它似乎忽略了我将结果附加到空列表的尝试......请帮助!

【问题讨论】:

标签: python while-loop append


【解决方案1】:

你最好使用for循环,这样更不容易出错:

sentence = input('Enter sentence: ')

subject = []
print(subject)

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

print(subject)

如果你想把一个句子分解成单词,有一个str.split 方法,它可以在简单的情况下帮助你:

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

【讨论】:

  • while 循环不再容易出错,除非程序员让它们出错
  • @depperm,当然,程序员真的很喜欢犯这些错误 :)
【解决方案2】:

为什么不使用split() 函数而不是一次附加一个字母:

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

甚至更简单:

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

或者即使你只想要一个输入,你也不必追加

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

split(),拆分参数定义的字符串并返回一个列表。

【讨论】:

    【解决方案3】:

    带有while循环:

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

    【讨论】:

      猜你喜欢
      • 2021-04-06
      • 2020-12-04
      • 2014-07-06
      • 1970-01-01
      • 2015-12-14
      • 1970-01-01
      • 2021-10-31
      • 2017-05-30
      相关资源
      最近更新 更多