4 回答

TA貢獻1859條經驗 獲得超6個贊
這使用列表理解通過從舊列表中存在的每個字符串中刪除所有尾隨來創建新列表。-
coins = [coin.rstrip('-') for coin in coins]

TA貢獻1802條經驗 獲得超4個贊
字符串是不可變的。當您這樣做時coin = coin.replace(),原始文件coin不會被修改。coin.replace()相反,您會得到一個新的字符串,它是用 name 存儲的結果coin。如果你不把它寫到coin你的列表中,它就不會出現在你的列表中。
你需要做的是:
for coin, index in enumerate(coins):
if coin.endswith('-'):
coin = coin.replace('-', '')
coins[index] = coin
print(coins)
if或者,如果您這樣做,您可以刪除該聲明
for coin, index in enumerate(coins):
coin = coin.rstrip('-')
coins[index] = coin
print(coins)
正如您從 Vishal 的回答中看到的那樣,這個循環可以縮短為列表理解
coins = [coin.rstrip('-') for coin in coins]

TA貢獻1796條經驗 獲得超7個贊
使用 replace 將刪除它找到的第一個“-”。但由于您已經知道最后一個字符是破折號:
if coin.endswith("-"): coin = coin[:-1]
或者您認為要刪除的尾部破折號可能不止一個:
while coin.endswith("-"): coin = coin[:-1]
編輯:注意coin = coin[:-1]
不會改變coins
。您將需要創建一個新列表或修復您現有的列表:
for i in range(len(coins)]: coin[i] = coin[i][:-1]

TA貢獻1827條經驗 獲得超8個贊
按預期替換工作,將所有“-”符號替換為空符號。如果您只需要替換結尾的一個,您應該使用以下代碼:
if coin.endswith('-'):
coin = coin[:-1]
如果你需要在沒有列表理解的情況下就地替換,你應該像下面這樣:
coins = ['big-coin-','coins','bitcoin']
for i in range(len(coins)):
if coins[i].endswith('-'):
coins[i] = coins[i][:-1]
print(coins)
但最好的解決方案是使用列表理解
coins = ['big-coin-','coins','bitcoin']
coins = [coin[:-1] if coin.endswith('-') else coin for coin in coins]
print(coins)
添加回答
舉報