不区分大小写的列表比较[重复]

问题描述 投票:0回答:1

我想编写一个代码来查看每个新用户名是否已在网站中使用过。

我有这个代码:

current_users = ['Rachel', 'Ross', 'Chandler', 'Joey', 'Monica']

new_users = ['Janice', 'Ben', 'Phoebe', 'JOEY']

for new_user in new_users:
    if new_user in current_users:
    print (f'The username {new_user} is alreay in use. You need to enter a new username')

else:
    print (f'The username {new_user} is avaliable')

这输出:

  • 用户名Janice可用
  • 用户名Ben可用
  • 用户名Phoebe可用
  • 用户名JOEY可用

对于“JOEY”,要打印的消息应该是这样的:“用户名 JOEY 已被使用。您需要输入一个新用户名”。

如何将列表小写(或大写)以使此代码不区分大小写?

python list case-insensitive lowercase
1个回答
2
投票

您应该创建一个包含所有小写名称的集合。然后,要检查名称是否可以使用,请在集合中查找名称的小写版本:

names_in_use = {name.lower() for name in current_users}

for new_user in new_users:
    if new_user.lower() in names_in_use:
        print (f'The username {new_user} is already in use. You need to enter a new username')
    else:
        print (f'The username {new_user} is avaliable')

这输出:

The username Janice is avaliable
The username Ben is avaliable
The username Phoebe is avaliable
The username JOEY is already in use. You need to enter a new username
© www.soinside.com 2019 - 2024. All rights reserved.