ошибка что функция не принимает список

у меня есть функция role которая принимает число и возвращает объект. remove_roles принимает self и *Role. я создаю список a перебирая значения из файла и применяю к ним role

a = [role(rank['role']) for rank in load(open('data.json', encoding='utf-8'))['ranks']]

Но когда я использую await object.remove_roles(a) мне выдаёт ошибку мол мне нужно передать значения, а не список. Можно как-то превратить список a в набор значений или как-то ещё исправить мою проблему?


Ответы (1 шт):

Автор решения: wchistow

Чтобы превратить список в набор значений, можно использовать синтаксис *list, например:

>>> lst = [1, 2, 3]
>>> print(lst)
[1, 2, 3]
>>> print(*lst)
1 2 3

В вашем случае надо await object.remove_roles(a) заменить на

await object.remove_roles(*a)
#                         ^

Подробнее в документации: https://docs.python.org/3/tutorial/controlflow.html#tut-unpacking-arguments

→ Ссылка