擅长:python、mysql、java
<p><code>append</code>将对象添加到列表的末尾,因为列表是可变的数据类型,所以可以附加到列表的末尾。<code>extend</code>将iterable中的每个元素添加到列表的末尾。你知道吗</p>
<p>您犯的错误是使用<code>str</code>序列扩展列表,如果要添加对象,请使用append:</p>
<pre><code>a = ['2', '3m7n', '3', '17']
b = ['bat', 'zoo', 'next']
for i in a:
if len(i) == 4:
b.append(i)
b
['bat', 'zoo', 'next', '3', 'm', '7', 'n']
</code></pre>
<p>使用extend时出现的错误是,使用字符串扩展列表,然后将其视为iterable并遍历字符串的每个字符,类似于<code>for i in '3m7n': print(i)</code>。使用相同的上下文,但将循环中的每个项转换为<code>list</code>,可以使用extend添加列表中的每个项:</p>
<pre><code>a = ['2', '3m7n', '3', '17']
b = ['bat', 'zoo', 'next']
for i in a:
if len(i) == 4:
b.extend([i])
b
>>['bat', 'zoo', 'next', '3m7n']
</code></pre>
<p>为了简单、易读和更高效,您可以使用列表理解来替换<code>for</code>循环:</p>
<pre><code>b.extend([i for i in a if len(i) == 4 ])
</code></pre>
<p>如果您观察到,它的工作原理与for循环完全相同,通过使用list对象扩展列表。你知道吗</p>