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

时间:2016-08-17 09:12:55

标签: python string list

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

我试过了:

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

for i in lst:

    i [7:]

print lst

但我从头开始得到同样的名单......

7 个答案:

答案 0 :(得分:4)

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

您可以这样做:

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

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

答案 1 :(得分:2)

试试这个:

for i in range(0, len(lst)):
   lst[i] = lst[i][7:]

答案 2 :(得分:2)

您可以执行以下操作:

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

print newlst

我希望有所帮助。

答案 3 :(得分:2)

i[7:]不在位,它会返回一个你不做任何事情的新字符串。

您可以使用所需的字符串创建新列表:

lst = [string[7:] for string in lst]

或者您可以修改相同的列表:

for idx, string in enumerate(ls):
    ls[idx] = string[7:]

答案 4 :(得分:2)

您没有将i[7:]的值保存在任何地方......只需创建一个包含修剪值的新列表:

lst = [i[7:] for i in lst]

答案 5 :(得分:2)

试试这个:

lst = [s[7:] for s in lst]

答案 6 :(得分:2)

你从未在问题中重新分配过lst,这就是为什么print(lst)中lst的输出不会改变的原因。尝试重新分配:

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

返回

  

['某事','smthelse']