I wondered why the following list comprehension failed (UnboundLocalError: local variable 'y_value' referenced before assignment
). If I literally spell out the for loops in a triple nested for loop, I nicely get the results I want.
for y_value_group in collinear_y_values:
all_y_values = []
for y_value in y_value_group:
for line_id in horizontal_lines[y_value]:
for p in LINES[line_id].pts:
all_y_values.append(p.y)
print(all_y_values)
all_y_values = [p.y for p in LINES[line_id].pts for line_id in horizontal_lines[y_value] for y_value in y_value_group]
print(all_y_values)
gives the following output:
[-0.01447138307529966, 0.22089181280929138, 0.22089181280929138, 0.19409634248390767]
---------------------------------------------------------------------------
UnboundLocalError Traceback (most recent call last)
<ipython-input-85-62411ee08ee6> in <module>
24 print(all_y_values)
---> 25 all_y_values = [p.y for p in LINES[line_id].pts for line_id in horizontal_lines[y_value] for y_value in y_value_group]
26 print(all_y_values)
<ipython-input-85-62411ee08ee6> in <listcomp>(.0)
24 print(all_y_values)
---> 25 all_y_values = [p.y for p in LINES[line_id].pts for line_id in horizontal_lines[y_value] for y_value in y_value_group]
26 print(all_y_values)
UnboundLocalError: local variable 'y_value' referenced before assignment