Python字符串比较不区分大小写 title()与capitalize()的区别

检测元素是否已经存在列表中,并且不区分大小写作比较,以下是Python 字符串忽略大小写的比较方法, 实现列表元素独一无二,可在操作前把字符串转换成同样大写 upper() 或同样小写 lower()

lists = ['login','A mUltiCased string','useR2_C_c','bilbil','cilcil']
new_lists = ['Login','A multicased sTring','UseR2_c_C','cilcil','dildil']
for list in lists:
    list_lower = list.lower()
    for new_list in new_lists:
        new_list_lower = new_list.lower()
        if new_list_lower == list_lower:
            print('用户名"' + new_list + '"已被占用')
if new_list_lower != list_lower:
    print('用户名"' + new_list + '"可注册')

效果:

用户名"Login"已被占用
用户名"A multicased sTring"已被占用
用户名"UseR2_c_C"已被占用
用户名"cilcil"已被占用
用户名"dildil"可注册

或者

current_users = ['admin','user1','user2','user3','user4']
new_users = ['aDmin','user1','user5','user6','user7']
for user in new_users:
    if user in current_users or user.lower() in current_users or user.title() in current_users or user.capitalize() in current_users or user.upper() in current_users:
        print('用户名' + user + '已被注册,请尝试其他用户名!')
    else:
        print('恭喜,没有人使用' + user + ',您可以注册!')

或者(代码最少)

current_users = ['admin','user1','user2','user3','user4']
new_users = ['aDmin','user1','user5','user6','user7']
for user in new_users:
    if user.lower() in [current_user.lower() for current_user in current_users]:
        print('用户名' + user + '已被注册,请尝试其他用户名!')
    else:
        print('恭喜,没有人使用' + user + ',您可以注册!')

效果:

用户名aDmin已被注册,请尝试其他用户名!
用户名user1已被注册,请尝试其他用户名!
恭喜,没有人使用user5,您可以注册!
恭喜,没有人使用user6,您可以注册!
恭喜,没有人使用user7,您可以注册!

capitalize() 与 title() 都是使字符串首字母大写,主要区别:title作用于整个字符串内的单词的首字母大写,capitalize只有整个字符串的第一个字母大写。

lists = ['login','A mUltiCased string','useR2_C_c']
for list in lists:
    print('\n' + list)
    print(list.lower() + ' 小写')
    print(list.upper() + ' 大写')
    print(list.title() + ' 字符串内的单词的首字母大写')
    print(list.capitalize() + ' 字符串的第一个字母大写')

效果:


login
login 小写
LOGIN 大写
Login 字符串内的单词的首字母大写
Login 字符串的第一个字母大写

A mUltiCased string
a multicased string 小写
A MULTICASED STRING 大写
A Multicased String 字符串内的单词的首字母大写
A multicased string 字符串的第一个字母大写

useR2_C_c
user2_c_c 小写
USER2_C_C 大写
User2_C_C 字符串内的单词的首字母大写
User2_c_c 字符串的第一个字母大写