如何在同一循环中添加lower()和strip()

时间:2017-07-14 20:11:27

标签: python

我是一个新手但是想快速学习。

以下是代码:

current_users = ['john', '    Bimu', 'admin              ', 'royo', 'AbCdEf', 'popo']

current_users = [current_users.strip() for current_users in current_users]

current_users = [current_users.lower() for current_users in current_users]

new_users = ['astra', '   JOHN', 'RoYO', ' gfgf', 'toui       ', '     popo']

new_users_stripped = new_users[:]

for new_user in new_users:

    if new_user.strip() not in current_users:

        print("Username " + new_user + " is available")

    else:

         print("Username " + new_user + " is already taken. You will need "
                "to chose another username")

我想剥离和降低数据,但希望在最后显示原始用户名。我也想让我的代码更清洁。到目前为止,我已经能够剥离()或降低(),但无法做到。我仍然遇到这样的问题,在我看来它应该在循环中运行,但我不知道如何。

有人可以帮忙吗?谢谢!

2 个答案:

答案 0 :(得分:0)

我会current_users成为set,以使其搜索效率更高一些。

current_users = ['john', '    Bimu', 'admin              ', 'royo', 'AbCdEf', 'popo']

current_users = set(user.strip().lower() for user in current_users)

new_users = ['astra', '   JOHN', 'RoYO', ' gfgf', 'toui       ', '     popo']

for user in new_users:
    if user.strip().lower() in current_users:
        print("Username {} is available".format(user))
    else:
        print("Username {} is not available".format(user))

此处我们不保存user.strip().lower()的结果,因此旧值仍存储在user

答案 1 :(得分:-4)

如果您想保留原件,则应复印原件并仅对复印件进行修改。这样你就拥有原始用户名和修改后的用户名。