擅长:python、mysql、java
<p>问题出在你的<code>break</code>行上。只在第一次迭代之后就脱离了<code>coordPair</code>循环。您的<code>while</code>循环运行<code>len(coordPairs)==3</code>次,因此第一项重复3次。在</p>
<p>以下是一些改进的代码(注释):</p>
<pre><code>oneLat = ['53.8041778', '59.8149016457', '51.1289412359']
oneLong = ['1.5192528', '1.57945488999', '8.57262235411']
# Do the negation here, instead of in the string formatting later
coordPairs = zip((-float(x) for x in oneLong), (float(x) for x in oneLat))
with open("file",'w') as f:
f.write(xmlHeaderStuff) # I've left out your string literal for brevity
#I assume the purpose of the two loops, the while loop and for loop,
#is for the purpose of repeating the group of 3 coord pairs each time?
for i in range(len(coordPairs)):
for coord in coordPairs:
f.write("\t\t<coordinates>{}, {}</coordinates>\n".format(*coord))
# break < this needs to go
f.write(xmlFooterStuff)
# f.close() < this is unnecessary, since the `with` block takes care of
# file closing automatically
</code></pre>