我正在为学校做作业。我应该让用户列出十个单词的列表,然后我应该删除列表中以用户选择的字母开头的所有项目。
这就是我尝试这样做的方式,但它并没有删除所有以字母开头的单词。我尽可能用我有限的知识进行故障排除,而且看起来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)
答案 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')
。而且你的缩进有点偏离,从第一个变量声明开始。