Составление списков в нижнем регистре - PullRequest
0 голосов
/ 22 марта 2019

Привет. Я пытаюсь сделать мои роли в списке чувствительными к регистру, поэтому при вызове команды Синий можно вызвать либо Синий, либо синий Ошибка, которую я получаюиз моего кода:

discord.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: 'list' object has no attribute 'lower'

Конкретная строка, где происходит ошибка if Colours.lower() in role:

Вот так выглядит мой код.

#--- Role list Categories ---"
    Colours = ['blue', 'Yellow', 'Pink', 'Black']
    Games = ['LoL', 'WoW']
    Platforms = ['PC', 'Xbox', 'PS4', 'Nintendo Switch']

    if ctx.message.channel == intros:
        pass
    else:
        if ctx.message.channel == botroom:
            message = '\n**Colour Roles** \n__Change the colour of your nickname.__\n'.format(author.display_name)
            for role in Colours:
                if Colours.lower() in roles: # if the command is typed cases-sensitive 
                    message += '\n{} **({})**'.format(role, len([member for member in guild.members if ([r for r in member.roles if r.name == role])]))
                    message += ''

Ответы [ 2 ]

1 голос
/ 22 марта 2019

В списке питонов нет метода lower(). Попробуйте вместо:

for role in [c.lower() for c in Colours]:
    if role in roles:
0 голосов
/ 22 марта 2019

Эта строка здесь:

if Colours.lower() in roles:

пытается сделать список строчными Colours.вам следует попробовать:

if role.lower() in roles:

, поскольку role проходит через каждую строку в списке цветов.

...