擅长:python、mysql、java
<p>使用map和lambda怎么样</p>
<pre><code>>>> map(lambda x:int(x) if x.isdigit() else x,['sam','1','dad','21'])
['sam', 1, 'dad', 21]
</code></pre>
<p>或是对清单的理解</p>
<pre><code>>>> [int(x) if x.isdigit() else x for x in ['sam','1','dad','21']]
['sam', 1, 'dad', 21]
>>>
</code></pre>
<p>如注释中所述,由于isdigit可能不会捕获负数,因此这里有一个处理它的精炼条件值得注意的是,如果字符串是字母数字而不是字母,则它是一个数字:-)</p>
<pre><code>>>> [int(x) if x.isalnum() and not x.isalpha() else x for x in ['sam','1','dad','21']]
['sam', 1, 'dad', 21]
</code></pre>