我的问题是这个。
如何使用,如果JOHN或john已在使用中,则用户无法创建新的user_name John。
我可以制作user_name.upper()= user_name.lower()或类似内容。
这些名称是通过current_users循环迭代的。我希望循环检测当前用户,如果已经在其upper()或title()表单中使用了名称,则禁止使用该名称。
编辑:如果可能,我可以获得最“pythonic”的方式。感谢。
答案 0 :(得分:1)
如果您不需要循环使用current_users,则可以使用列表推导:
if user_name.lower() in [user.lower() for user in current_users]:
# user_name already taken
这与做:
相同lower_current_users = list()
for user in current_users:
lower_current_users.append(user.lower())
if user_name.lower() in lower_current_users:
# user_name already taken
正如您所看到的,列表理解需要较少的代码行,对于此类事物非常有用。
或者,如果您需要检查多个内容,则可以使用正常for循环:
for user in current_users:
if user_name.lower() == user.lower():
# user_name already taken
答案 1 :(得分:0)
你可以使用lambda(一个小的匿名小函数)并使你的整个列表小写,然后比较下面的new_name。如果是新的,请添加,如果不是,请不要。
name_list = ["John", "Sam", "Joe"]
new_name = "jOhN"
if new_name.lower() in [x.lower() for x in name_list]:
print("nope")
else:
print("new name, add it!")
name_list.append(new_name)
print (name_list)
答案 2 :(得分:0)
for username in current_user_names:
if ip_username.lower() == username.lower():
Flag = 1
print ‘match found’
else:
Flag = 0
current_user_names.append(username)
或者只是在您添加用户名时添加小写字母。
your_userlist.append(username.lower())
您只需使用IN关键字检查
即可if current_user.lower() IN your_userlist:
答案 3 :(得分:0)
existing_users = ["John","tilak","RAMESH","SidDDu"]
while True:
name = raw_input("Enter a name: ")
for i in existing_users:
if name.lower() == i.lower():
print "Name Already exists!Please choose another"
else:
existing_users.append(name)