如何从列表中的字符串中删除前 x 个字符

新手上路,请多包涵

所以我有一个列表和几个字符串。我只想从每个字符串中删除前 7 个字符。我怎么做?

我试过了:

 lst = ["1234567something", "1234567smthelse"]

for i in lst:

    i [7:]

print lst

但我从一开始就得到了相同的清单……

原文由 mdenci 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 372
2 个回答

当做 i [7:]实际上并没有编辑 列表的元素,你只是在计算一个新的字符串,没有前 7 个字符,并且没有对它做任何事情。

你可以这样做:

 >>> lst = [e[7:] for e in lst]
>>> lst
['something', 'smthelse']

这将在数组的元素上循环,并按预期从开头删除字符。

原文由 3kt 发布,翻译遵循 CC BY-SA 3.0 许可协议

您从未在问题中重新分配 lst ,这就是 print(lst) 中 lst 的输出不变的原因。尝试像这样重新分配:

 lst = ["1234567something", "1234567smthelse"]
lst = [i[7:] for i in lst]
print(lst)

回报

[‘某事’,’smthelse’]

原文由 Rahul Madhavan 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题