【问题标题】:How to implement the method "lower()" on a list?如何在列表上实现方法“lower()”?
【发布时间】:2019-06-27 02:23:34
【问题描述】:
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


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    只需遍历 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.")
    

    【讨论】:

      猜你喜欢
      • 2022-08-24
      • 1970-01-01
      • 2021-12-25
      • 2014-07-23
      • 1970-01-01
      • 2020-09-01
      • 2021-05-30
      • 2012-03-13
      • 2010-10-14
      相关资源
      最近更新 更多