如何实现清单上的方法“下()”?

问题描述 投票:0回答:2
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的名字永久改变。只有当条件测试过程。

python-3.x case-sensitive lowercase
2个回答
0
投票

你可以创建一个小写当前用户的副本。你也应该让一组中的成员资格的测试更好的性能:

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

0
投票

只需通过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.")
© www.soinside.com 2019 - 2024. All rights reserved.