如何删除以用户选择的字母开头的所有项目?

时间:2016-11-02 17:25:29

标签: python python-3.x

我正在为学校做作业。我应该让用户列出十个单词的列表,然后我应该删除列表中以用户选择的字母开头的所有项目。

这就是我尝试这样做的方式,但它并没有删除所有以字母开头的单词。我尽可能用我有限的知识进行故障排除,而且看起来for循环并没有经过所有的话。

ordalisti = []
for i in range(10):
    wordlist.append(str(input("Type a word: ").lower()))
letter = input("Choose a letter: ").lower()
for word in wordlist:
    if word[0] == letter:
        wordlist.remove(word)
print(wordlist)

4 个答案:

答案 0 :(得分:2)

列表中删除项目,因为您正在迭代它并不起作用。删除行为会干扰迭代序列,最终会跳过一些项目。

解决此问题的一种方法是将要保存的项目复制到新列表中,然后将旧列表替换为新列表。

查看这个现有问题的答案,了解handle removing items from a list的许多方法。

答案 1 :(得分:2)

您可以使用列表理解:

 {
  "languages": [
    "",
    "CSS",
    "HTML",
    "",
    "JavaScript",
    "Dust",
    "",
    ""
  ]
}

答案 2 :(得分:-1)

$formMapper
  ->with('group1')
    ->add('foo')
  ->end()
  ->with('group2')
    ->add('bar')
    ->add('baz')
  ->end()

答案 3 :(得分:-2)

我认为您需要ordalisti = []代替wordlist = [] inline('sin(x)+3')。而且你的缩进有点偏离,从第一个变量声明开始。