如何在列表中实现方法"lower()"?


current_users = ["Bob", "RocK", "JeNNy", "Sara", "mike", "ROGER"]
new_users = ["rock", "Eliza", "MiKe", "roger", "StEve"]
for new_user in new_users:
    if new_user.lower() in current_users:
        print("The name " + new_user + " is not available.")
    elif new_user.lower() not in current_users:
        print("The name " + new_user + " is available.")

我必须在上面的代码中更改什么才能使列表中的所有名称current_users第六行和第八行都是小写的。我尝试了current_users.lower(),但发生错误,AttributeError: 'list' object has no attribute 'lower'

要指出的是,我不希望列表中的名字永久更改current_users。仅在条件测试进行时。

您可以创建小写的当前用户副本。您还应该将其设置为一组,以便在成员资格测试中获得更好的性能:

current_users = ["Bob", "RocK", "JeNNy", "Sara", "mike", "ROGER"]
new_users = ["rock", "Eliza", "MiKe", "roger", "StEve"]
current_users_set = set(name.lower() for name in current_users)
for new_user in new_users:
    if new_user.lower() in current_users:
        print("The name " + new_user + " is not available.")
    elif new_user.lower() not in current_users:
        print("The name " + new_user + " is available.")

只需遍历current_user列表,如果找到匹配项,则将项目更改为小写,请参阅下面的示例代码。 注意 它未经测试

for new_user in new_users:
     for user in current_users:
         if new_user.lower() == user :
            user = user.lower()
            print("The name " + new_user + " is not 
            available.")
 if new_user.lower() not in current_users:
     print("The name " + new_user + " is available.")

最新更新