我有一个列表,其中包含几个字符串。我只想从每个字符串中删除前7个字符。我应该怎么做?
我尝试过:
lst = ["1234567something", "1234567smthelse"]
for i in lst:
i [7:]
print lst
但我从一开始就得到了相同的列表...
当执行i [7:]
时,实际上并没有编辑列表中的元素,只是计算一个新字符串,不包括前7个字符,并且不会对原列表进行任何操作。
你可以尝试这样做:
>>> lst = [e[7:] for e in lst]
>>> lst
['something', 'smthelse']
这将循环遍历您的数组元素,并按预期从开头删除字符。
您可以执行以下操作:
lst = ["1234567something", "1234567smthelse"]
newlst=[]
for i in lst:
newlst.append(i[7:])
print newlst
i[7:]
不是原地操作,它返回一个新的字符串,你没有对其进行任何操作。
你可以用所需字符串创建一个新列表:
lst = [string[7:] for string in lst]
或者您可以修改同一列表:
for idx, string in enumerate(ls):
ls[idx] = string[7:]
lst = ["1234567something", "1234567smthelse"]
lst = [i[7:] for i in lst]
print(lst)
返回值
['某物', '另一物']
试试这个:
for i in range(0, len(lst)):
lst[i] = lst[i][7:]
您没有将i[7:]
的值保存在任何地方...只需创建一个新列表,其中包含修剪过的值:
lst = [i[7:] for i in lst]
试试这个:
lst = [s[7:] for s in lst]