python - 如何比较一个字符串是否在列表中,并在lower()中读取该列表中的每个项目?
问题描述
我想查看用户列表中是否已经存在新用户名,但是对于现有用户也可以评估用户lower()
功能。
我已经尝试过这个:
for nuser in new_users:
if nuser.lower() not in users.lower():
但它不喜欢users.lower()
:
我也尝试将我的更改nuser.lower()
为nuser.title()
,但这不是未来的证明,因为我并非所有用户都会以title()
格式书写。
我的整个代码如下:
users = ['John', 'Kyle', 'Lily', 'admin', 'Tom']
new_users = ['john', 'Mike', 'TOM', 'Daemon']
if new_users:
for nuser in new_users:
if nuser.lower() not in users.lower():
print("Username: "+nuser+" is available.")
else:
print("Username: "+nuser+" is not available, you will have to choose another.")
例如,我希望 TOM 和 Tom 发生冲突并打印出用户名不可用。
非常感谢!
解决方案
users = ['John', 'Kyle', 'Lily', 'admin', 'Tom']
new_users = ['john', 'Mike', 'TOM', 'Daemon']
if new_users:
users_lower = set(map(str.lower, users))
for nuser in new_users:
if nuser.lower() not in users_lower:
print("Username: "+nuser+" is available.")
else:
print("Username: "+nuser+" is not available, you will have to choose another.")
users
是一个没有属性lower
的列表 - 你必须降低你自己的列表元素并使用一个集合来快速查找(element in some_list
比慢得多element in some_set
)
推荐阅读
- javascript - Vis.js JSON 数据到 Google 电子表格范围
- php - 紧凑型 Laravel 中未定义的变量“注释”
- python - Python 使用 for 循环将列表转换为 AscII
- python - 如何在 Python 脚本中获得管理员权限?
- c# - Linux 上的 ASP.NET Core MVC 应用程序 - Raspberry Pi 无法正确显示
- c - gcc 7.3 128 位无符号整数运算
- reactjs - 如何使用 React js 和 REST API 从数据库中删除数据
- netsuite - 如何使用 Mulesoft dataweave 中的 netsuite 连接器在 nullfieldlist 中传递多个值
- ios - 如何绘制环绕圆形按钮的圆形矩形?
- javascript - 如何(使用 React JS web)和 Firestore,你能找出 chatRoom(在 Firestore 数据库上)何时收到新消息吗?