我想在Tkinter画布上画线的坐标列表:
points = [(1,1), (2, 2), (3, 3), (2, 0)] # etc. This is could have 100 points or more
下一步将调用函数create_line,但它不支持列表:
Canvas.create_line(1, 1, 2, 2, 3, 3) #this works ok
Canvas.create_line(points) #this doesn't work
那么,有没有一种有效的方法可以将列表中的元素分开并按此顺序将它们插入到函数中?如果可能的话,我希望避免使用for循环。
答案 0 :(得分:1)
您可以使用列表理解来使列表points
扁平化:
flattened = [a for x in points for a in x]
然后使用“ *”语法将该拼合列表的元素转换为参数:
Canvas.create_line(*flattened)
我礼貌地建议您克服有关for循环的麻烦。没有它们,编写有用的程序几乎是不可能的。