擅长:python、mysql、java
<p>我认为您可以在这里使用pythonreduce或简单的forloop</p>
<pre class="lang-py prettyprint-override"><code>base_names = ['mozzarella', 'cinderella', 'salmonella']
# using forloop
result = []
for name in base_names:
if name == 'salmonella':
continue
elif name == 'cinderella':
name = name.capitalize()
elif name == 'mozzarella':
name = name.upper()
result.append(name)
print(result)
# using reduce
from functools import reduce # for python3
def reduce_fuc(acc, name):
if name == 'salmonella':
return acc
elif name == 'cinderella':
name = name.capitalize()
elif name == 'mozzarella':
name = name.upper()
acc.append(name)
return acc
names = reduce(reduce_fuc, base_names, [])
print(names)
</code></pre>
<p>两种方法都返回相同的结果,但都不修改<code>base_name</code>列表,而是生成包含结果的新列表</p>