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条经验 获得超7个赞
按预期替换工作,将所有“-”符号替换为空符号。如果您只需要替换结尾的一个,您应该使用以下代码:
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)
添加回答
举报