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.")