PythonTkinter:如何使用列表/元组中的多个点创建_line?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (209)

我想在Tkinter画布上画出一组坐标:

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

下一步是调用函数CREATE_行,但它不能支持列表:

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)

我建议你克服循环的麻烦,没有循环就不可能写出有用的程序。

扫码关注云+社区

领取腾讯云代金券