擅长:python、mysql、java
<p>我猜点构造函数可能会取1对,而不是包含1对的元组?为此,您需要更改:</p>
<pre><code>point = Point(args_to_tuple(sys.argv[1:3]))
</code></pre>
<p>致:</p>
<pre><code>point = Point(args_to_tuple(sys.argv[1:3])[0])
</code></pre>
<p>或者可能:</p>
<pre><code>point = Point(*args_to_tuple(sys.argv[1:3])[0])
</code></pre>
<p>如果不知道shapely的API,我就不确定了。</p>
<p>至于将参数转换为成对元组,您的方法做得很好。但是,如果您想要一个预打包的无麻烦解决方案,我将查看pytoolz的<a href="https://toolz.readthedocs.org/en/latest/api.html#toolz.itertoolz.partition_all" rel="nofollow">partition_all</a>方法,用于将对分组在一起。同样看看cytoolz,它努力使这些方法在性能上与C相媲美。</p>
<p><strong>编辑</strong></p>
<p>我注意到你的方法有缺陷。你没有在你的循环中从args_到tuple方法递增i!下面是一个修订版本,您可以在其中填充多段列表:</p>
<pre><code>polylist = [(arglist[i],arglist[i+1]) for i in xrange(0,len(arglist),2)]
</code></pre>