我已經抓取并創建了一個 URL 串列,并試圖替換串列中每個 url 的一部分。
每個 URL 都包含我要洗掉的“/season/1288”部分。'productions' 是我的 url 串列,這是我使用的代碼:
prod_lists = [str.replace('/season/1288', '') for i in productions]
print(prod_lists)
它回傳錯誤
TypeError: replace expected at least 2 arguments, got 1
uj5u.com熱心網友回復:
要list comprehension在代碼中使用串列,您應該使用變數 i,而不是str。
productions = [
'/season/1288/aaa',
'/season/1288/bbb',
'/season/1288/ccc',
]
prod_lists = [i.replace('/season/1288', '') for i in productions]
print(prod_lists)
這將列印:
['/aaa', '/bbb', '/ccc']
您收到錯誤訊息的原因是因為您replace使用str類而不是str實體呼叫了函式。它自動將str實體作為第一個引數傳遞,稱為self但是,在此代碼replace中找不到作為第一個引數傳遞的 str 實體,因為它str是一個類,而不是一個實體。
有趣的是,如果您運行以下代碼,明確傳遞str實體 '/season/1288/ccc',您可以看到結果被 1 替換,而不會出現錯誤 msg。
productions = ['/season/1288/aaa']
prod_lists = [str.replace('/season/1288/ccc', '/season/1288', '1') for i in productions]
print(prod_lists) # This prints: ['1/aaa']
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/349352.html
上一篇:如何使用Python從Excel中提取特定行范圍內的值
下一篇:高于預期的GAE實體數
