擅长:python、mysql、java
<p>这在某种程度上是两者的结合(所以两者都是+1)。main函数接受列表、任意函数和要操作的字符:</p>
<pre><code>In [47]: def RandomAlter(l, func, char):
return [''.join([func(w[x]) if x == char else w[x] for x in xrange(len(w))]) for w in l]
....:
In [48]: RandomAlter(words, str.upper, 4)
Out[48]: ['housE', 'flowEr', 'tree']
In [49]: RandomAlter([str.upper(w) for w in words], str.lower, 2)
Out[49]: ['HOuSE', 'FLoWER', 'TReE']
In [50]: RandomAlter(words, lambda x: '_', 4)
Out[50]: ['hous_', 'flow_r', 'tree']
</code></pre>
<p>函数<code>RandomAlter</code>可以重写为这样,这可能会使它更清楚一些(它利用一个名为<a href="http://docs.python.org/2/tutorial/datastructures.html#list-comprehensions" rel="nofollow">list comprehensions</a>的特性来减少所需的代码行)。在</p>
^{pr2}$