从列表中删除特定项,但在python中保留某些项
我有一个大数据集,在使用re.finditer函数查找某个字符的所有实例后,它会生成一个列表。此处显示的示例列表:从列表中删除特定项,但在python中保留某些项,python,list,Python,List,我有一个大数据集,在使用re.finditer函数查找某个字符的所有实例后,它会生成一个列表。此处显示的示例列表: [41、64、87、105、713、736、759、777、1385、1408、1431、1449、2057、2080、, 21032127292752793,…] 我需要删除除第四项以外的所有项目。所以我需要删除索引41、64和87处的字符,而不是105。删除713、736和759,但不删除777。等等 我在MacOS10.12上使用python 更新: 现在我有了这个新列表a=
[41、64、87、105、713、736、759、777、1385、1408、1431、1449、2057、2080、,
21032127292752793,…]
我需要删除除第四项以外的所有项目。所以我需要删除索引41、64和87处的字符,而不是105。删除713、736和759,但不删除777。等等
我在MacOS10.12上使用python
更新:
现在我有了这个新列表a=[105777144921212793]
,我希望替换我导入到变量中的文本文件的索引。我可以这样做吗:
for idx, item in enumerate(a):
raw_text[item] = "new character/string"
根据您的描述,您希望删除除第四个元素外的所有元素。您可以使用切片操作符执行此操作:
data[3::4]
如果您使用的是iterable(不是列表、元组等),则可以使用itertools.islice
:
from itertools import islice
islice(data,3,None,4)
这里None
在语义上用作停止索引。因为我们不想停留在某个索引上,所以我们使用None
。这将产生:
>>> list(islice(data,3,None,4))
[105, 777, 1449, 2121, 2793]
根据您的描述,您希望删除除第四个元素外的所有元素。您可以使用切片操作符执行此操作:
data[3::4]
如果您使用的是iterable(不是列表、元组等),则可以使用itertools.islice
:
from itertools import islice
islice(data,3,None,4)
这里None
在语义上用作停止索引。因为我们不想停留在某个索引上,所以我们使用None
。这将产生:
>>> list(islice(data,3,None,4))
[105, 777, 1449, 2121, 2793]
这有点不同,但如果你开始反向索引,它会给你同样的结果
In [29]: s = d[::-4]
In [30]: s
Out[30]: [2793, 2121, 1449, 777, 105]
In [31]: s.reverse()
In [32]: s
Out[32]: [105, 777, 1449, 2121, 2793]
这有点不同,但如果你开始反向索引,它会给你同样的结果
In [29]: s = d[::-4]
In [30]: s
Out[30]: [2793, 2121, 1449, 777, 105]
In [31]: s.reverse()
In [32]: s
Out[32]: [105, 777, 1449, 2121, 2793]
你能写出预期的结果吗。请注意,
finditer
的结果不是一个字符串,而是一个列表。请您编写预期的输出。请注意,finditer
的结果不是一个字符串,而是一个列表。谢谢!这正是我所期待的,现在我有了新的[105777144921212793]列表,我如何替换基于这些索引的数据集中的项目?@Dorilds:你能更新你的问题并提供更多的上下文吗?还是开始一个新问题?谢谢!这正是我所期待的,现在我有了新的[105777144921212793]列表,我如何替换基于这些索引的数据集中的项目?@Dorilds:你能更新你的问题并提供更多的上下文吗?还是开始一个新问题?