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

时间:2017-06-24 16:18:24

标签: python python-2.7 python-3.x import porting

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

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

有没有办法将这种表示法转换为python 2表示法(比如import typingx.__annotations__ = {}如何克服类型注释?更一般地说,这应该表示什么?因为它在python 2上运行时引发语法错误。

谢谢!

1 个答案:

答案 0 :(得分:1)

这是一个带有catch-all组件的可迭代解包赋值;前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