Что означает оператор * в Python, например, в коде, подобном zip(*x) или f(**k)?
- Как это обрабатывается внутри переводчика?
- Влияет ли это на производительность вообще? Это быстро или медленно?
- Когда это полезно, а когда нет?
- Должно ли оно использоваться в объявлении функции или в вызове?