Python Tkinter:如何在列表/元组中创建具有多个点的_线?

Python Tkinter:如何在列表/元组中创建具有多个点的_线?,python,list,tkinter,tkinter-canvas,Python,List,Tkinter,Tkinter Canvas,我想在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 doe

我想在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循环。

您可以使用列表理解功能展平列表

flattened = [a for x in points for a in x]
并将扁平列表中的元素转换为带有“*”语法的参数:

我有礼貌地建议你克服对循环的困扰。没有它们,编写有用的程序几乎是不可能的

Canvas.create_line(*flattened)