r, g, b, *a = img_list[generated_number]: 在 python3 中是什么意思?

What does: r, g, b, *a = img_list[generated_number]: mean in python3?

r, g, b, *a = img_list[generated_number]

这在 python3 中意味着什么?我正在将 stegano 库移植到 python 2(因为盗窃电池在从 sbcl 导入时在 python3 中的库有问题)。

有没有办法将此表示法转换为 python 2 表示法(例如如何使用 import typingx.__annotations__ = {} 克服类型注释)?更一般地说,这应该表示什么?因为当 运行 on python 2.

时会引发语法错误

谢谢!

这是一个带有包罗万象组件的可迭代拆包作业;前 3 个值分别分配给 rgb,其余值作为序列分配给 *a(捕获前 3 个以外的任何值).

要在 Python 2 中实现同样的效果,您需要使用切片:

(r, g, b), a = img_list[generated_number][:3], img_list[generated_number][3:]

有关新功能的详细信息,请参阅 PEP 3132 -- Extended Iterable Unpacking