亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我如何刪除列表中的破折號,僅當它位于行尾時

我如何刪除列表中的破折號,僅當它位于行尾時

森欄 2023-04-18 16:31:13
coins = ['big-coin-','coins','bitcoin']for coin in coins:    if coin.endswith('-'):        coin = coin.replace('-','')        print(coin)    print(coins)更換不起作用?我想要 big-coin- 替換為 big-coin。謝謝你!
查看完整描述

4 回答

?
慕絲7291255

TA貢獻1859條經驗 獲得超6個贊

這使用列表理解通過從舊列表中存在的每個字符串中刪除所有尾隨來創建新列表。-

coins = [coin.rstrip('-') for coin in coins]


查看完整回答
反對 回復 2023-04-18
?
慕虎7371278

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]


查看完整回答
反對 回復 2023-04-18
?
蕪湖不蕪

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]


查看完整回答
反對 回復 2023-04-18
?
慕仙森

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)


查看完整回答
反對 回復 2023-04-18
  • 4 回答
  • 0 關注
  • 174 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號