回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<pre><code>ls=['ISSN1','94500','2424922X','','21693536','01464116','16879724','22042326','07419341','09272852','00015903','0324721X','']
ls = [i.zfill(8) for i in ls if i != ""]
ls
Output:
['000ISSN1',
'00094500',
'2424922X',
'21693536',
'01464116',
'16879724',
'22042326',
'07419341',
'09272852',
'00015903',
'0324721X']
</code></pre>
<p>但是,这删除了空元素。我尝试了其他几种方法来保持空元素:</p>
<p>方法1:</p>
<pre><code>for i in range(len(ls)):
if ls[i]!="":
ls[i]=str(ls[i]).zfill(8)
else:
pass
ls
</code></pre>
<p>方法2:</p>
<pre><code>def changes(ls):
for i in range(len(ls)):
if ls[i]!="":
ls[i]=str(ls[i]).zfill(8)
else:
pass
return ls
ls=changes(ls)
ls
</code></pre>
<p>这两种方法都返回我所需的输出:</p>
<pre><code>['000ISSN1',
'00094500',
'2424922X',
'',
'21693536',
'01464116',
'16879724',
'22042326',
'07419341',
'09272852',
'00015903',
'0324721X',
'']
</code></pre>
<p>我仍然在想,是否有一种方法可以达到与列表理解相同的结果</p>