Python循环,.remove和List练习

时间:2017-08-29 08:01:49

标签: python loops

所以我们有一个练习,我们给孩子们,我们需要使用一个列表(或数组),以及'.remove()'方法和循环。

我有以下代码,但代码无效。

set

检查

usernames = [
    'Steph','JHG','Greg','Matt','Rodney','David',
    'Chris','Sally','Gemma','Pam','Daniel','JHG',
    'JHG','Ishmael','Sam', 'JHG','Jacob'
]
for i in range(0,3):
    for name in usernames:
        usernames.remove('JHG')
print(usernames)

4 个答案:

答案 0 :(得分:1)

或作为while循环:

while 'JHG' in usernames:
    usernames.remove('JHG')

答案 1 :(得分:0)

for name in usernames:
    if name == 'JHG':
         usernames.remove(name)

答案 2 :(得分:0)

问题是你正在使用循环来删除'JHG'的所有实例。因为for循环循环了很多次(外循环的次数是3次,而内循环的列表中的名称也是如此),所以你基本上会删除'JHG'一次。它在前三次工作正常,删除所有'JHG',但第四次失败,因为没有'JHG剩下要删除!

如果您希望学生使用循环,也许您可​​以检查用户名中的名称是否等于'JHG',然后将其删除。

for name in usernames:
  if name == 'JHG':
    usernames.remove(name)

答案 3 :(得分:0)

简单快捷:

usernames = [name for name in usernames if x != 'JHG']