擅长:python、mysql、java
<p>“使用<code>list(elem)</code>或迭代”字面意思是<code>list(root)</code>,而不是<code>root.list()</code>。以下工作将起作用:</p>
<pre><code>getID = list(root)[0].attrib['ID']
</code></pre>
<p>您可以将任何iterable包装在一个列表中,并且弃用说明特别告诉您<code>root</code>是iterable。由于只为一个元素分配列表效率很低,因此可以获取迭代器并从中提取第一个元素:</p>
<pre><code>getID = next(iter(root)).attrib['ID']
</code></pre>
<p>这是一个更紧凑的表示法</p>
<pre><code>for child in root:
getID = child.attrib['ID']
break
</code></pre>
<p>主要区别在于,当没有子变量时(直接由<code>next</code>引发错误,而尝试访问不存在的<code>getID</code>变量时则会引发错误)</p>