繁体   English   中英

Python Tkinter:如何在列表/元组中具有多个点的create_line?

[英]Python Tkinter: How to create_line with multiple points in a list/tuple?

我想在Tkinter画布上画线的坐标列表:

points = [(1,1), (2, 2), (3, 3), (2, 0)]   # etc. This is could have 100 points or more

下一步是调用函数create_line,但它不支持list:

Canvas.create_line(1, 1, 2, 2, 3, 3)       #this works ok
Canvas.create_line(points)                 #this doesn't work

那么,是否存在一种有效的方法来分隔列表中的元素,然后按此顺序将它们插入到函数中? 如果可能,我希望避免使用for循环。

您可以使用列表理解来展平列表points

flattened = [a for x in points for a in x]

然后使用“ *”语法将扁平化列表的元素转换为参数:

Canvas.create_line(*flattened)

我礼貌地建议您克服for循环的麻烦。 没有它们,编写有用的程序几乎是不可能的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM