[英]How do I create a pentagon and hexagon using create_line in python tkinter canvas?
[英]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.