所以,这就是我想要的结构。 Rect类已被定义。在此,Rect的数量为5,并重复5次。但是我希望它重复n次,其中n是输入。 rcta []是float值,是n的两倍,n也将相应地输入。并且所有内容都应存储在数组tmp_rect_list中。我该怎么办?
tmp_rect_list = [Rect(rcta[i],rcta[i+1]),Rect(rcta[i+2],rcta[i+3]),Rect(rcta[i+4],rcta[i+5]),Rect(rcta[i+6],rcta[i+7]),Rect(rcta[i+8],rcta[i+9])]
答案 0 :(得分:1)
您可以使用列表推导,将rcta
中的值分组:
rcta = [...]
tmp_rect_list = [Rect(a, b) for a, b in zip(*[iter(rcta)] * 2)]
使用tuple
而不是Rect
s的示例:
In [1]: rcta = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
In [2]: tmp_rect_list = [(a, b) for a, b in zip(*[iter(rcta)] * 2)]
In [3]: tmp_rect_list
Out[3]: [(1, 2), (3, 4), (5, 6), (7, 8), (9, 10)]
答案 1 :(得分:1)
tmp_rect_list = [Rect(rcta[i], rcta[i+1]) for i in range(0, len(rcta), 2)]