python - Matplotlib:问题是 len(xy) 或 (xy) 是不可接受的

这是我得到错误的长 python 代码的一部分:

m = Basemap(...)
lons = ...
lats = ...
x, y = m( lons, lats )
xy = zip(x,y)
print('xy=',xy)
poly = Polygon( xy, facecolor='none', edgecolor=linecolor )

output:
..\site-packages\matplotlib\patches.py", line 1070, in set_xy
    if len(xy) and (xy[0] != xy[-1]).any():
TypeError: len() of unsized object

Matplotlib:问题在于 len(xy) 或 (xy) 是不可接受的。

因为该代码包含许多变量,所以我可以制作的简短可重现代码(通过打印(x,y)):

x,y= [105, 98, 98, 105], [-5, -5, 6, 6]
xy = zip(x,y)
len(xy) 
error: TypeError: object of type 'zip' has no len()

有什么建议可以解决这个问题吗?

回答1

zip 函数返回一种特殊类型的 zip 对象,而不是列表。要获取列表类型,您需要执行 list(zip(x, y))

>>> x,y= [105, 98, 98, 105], [-5, -5, 6, 6]
>>> xy = zip(x,y)
>>> xy
<zip object at 0x100eaf280>
>>> xy = list(zip(x, y))
>>> xy
[(105, -5), (98, -5), (98, 6), (105, 6)]
>>> len(xy)
4

相似文章

arm - 关于 neon 内部地址操作的问题

我在ARMv7上的项目中重新排列了一个数组。现在我按照我期望的顺序得到元素的地址d[]。为了使代码更高效,我想在C++中使用neon内在函数。现在我的问题是,我可以使用vld1q_s32()加载地址数...

随机推荐

最新文章