所以我有一个列表和一些字符串。我只是想从每个字符串中删除前7个字符。我该怎么做?
我试过了:
lst = ["1234567something", "1234567smthelse"]
for i in lst:
i [7:]
print lst
但我从头开始得到同样的名单......
答案 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']