回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我正在从数组中移除一个项(如果它存在)。在</p>
<p>我可以想出两种方法</p>
<h2>1路</h2>
<pre>
# x array, r item to remove
if r in x :
x.remove( r )
</pre>
<h2>2路</h2>
^{pr2}$
<p>计时显示try/except方式可以使<b>更快</p>
<p>(有时我会得到:)</p>
<pre>
1.16225508968e-06
8.80804972547e-07
1.14314196588e-06
8.73752536492e-07
</pre>
<pre>
import timeit
runs = 10000
x = [ '101', '102', '103', '104', '105', 'a', 'b', 'c',
'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', '111', '112', '113',
'x', 'y', 'z', 'w', 'wwwwwww', 'aeiojwaef', 'iweojfoigj', 'oiowow',
'oiweoiwioeiowe', 'oiwjaoigjoaigjaowig',
]
r = 'a'
code1 ="""
x = [ '101', '102', '103', '104', '105', 'a', 'b', 'c',
'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', '111', '112', '113',
'x', 'y', 'z', 'w', 'wwwwwww', 'aeiojwaef', 'iweojfoigj', 'oiowow',
'oiweoiwioeiowe', 'oiwjaoigjoaigjaowig',
]
r = 'a'
if r in x :
x.remove(r)
"""
print timeit.Timer( code1 ).timeit( runs ) / runs
code2 ="""
x = [ '101', '102', '103', '104', '105', 'a', 'b', 'c',
'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', '111', '112', '113',
'x', 'y', 'z', 'w', 'wwwwwww', 'aeiojwaef', 'iweojfoigj', 'oiowow',
'oiweoiwioeiowe', 'oiwjaoigjoaigjaowig',
]
r = 'a'
try :
x.remove( r )
except :
pass
"""
print timeit.Timer( code2 ).timeit( runs ) / runs
</pre>
<p>哪个更像Python?在</p>