我有一個urls的串列:
urls = ['https://www.website.com/407161a'/span>, 'https://www.website.com/359426a'/span>, 'https://www.website.com/441885a'/span>, 'https://www.website.com/331791a'/span>]
我試圖在/上分割每個url字串,并獲得最后一個元素,輸出如下。['407161a', '359426a', '441885a', '331791a', '403123a']。
我使用這段代碼來獲得上述結果。 有什么方法可以讓這段代碼更快? uj5u.com熱心網友回復: 你可以使用 uj5u.com熱心網友回復: 你可以使用 試試這個:
標籤: 上一篇:在Python1或Python2中是否可以創建一個新的型別(但不是一個新的類)?
下一篇:對NumPy進行矢量處理的問題
[u.rpartition('/')[2] for u in urls]/code>。問題是:在較大的串列上,它有點慢。在我的機器上,在一個有200萬個URL的串列上需要~0.75秒。我正試圖找到一個更快的方法,因為我將在包含 1000 萬以上元素的串列上多次運行這個方法。
str.rsplit,引數maxsplit為1(使用rsplit,引數maxsplit只是避免不必要的分割),然后取最后一個元素。你可以對每一個專案使用串列理解法。【i. rsplit('/',1) [-1] for i in urls]
['407161a'/span>, '359426a'/span>, '441885a'/span>, '331791a'/span>]
str.rindex并從last中找到'/'的索引,然后回傳該索引到最后一個字串的所有字母。[u[u.rindex('/'/span>) 1:] for u in URLs ]
# ['407161a', '359426a', '441885a', '331791a']/span>
