我有一个大型数据集,在使用re.finditer函数查找某个特定字符的所有实例后生成一个列表.此处显示的示例列表:
[41, 64, 87, 105, 713, 736, 759, 777, 1385, 1408, 1431, 1449, 2057, 2080,
2103, 2121, 2729, 2752, 2775, 2793,...]
我需要删除除第4项以外的所有项目.所以我需要删除索引41,64和87但不是105的字符.删除713,736和759但不删除777等.
我在Mac OS 10.12上使用python.
更新:
所以现在我有了这个新列表a=[105,777,1449,2121,2793],我希望将已导入的文本文件的索引替换为变量.我可以这样做:
for idx, item in enumerate(a):
raw_text[item] = "new character/string"
Run Code Online (Sandbox Code Playgroud)
根据您的描述,您希望删除除第四个元素之外的所有元素.您可以使用切片运算符执行此操作:
data[3::4]Run Code Online (Sandbox Code Playgroud)
这3是我们感兴趣的第一个索引以来的起始索引,是3.在4我们采取的手段的4跳.
这会产生:
>>> data[3::4]
[105, 777, 1449, 2121, 2793]
Run Code Online (Sandbox Code Playgroud)
如果您正在使用iterable(不是列表,元组,...),您可以使用itertools.islice:
from itertools import islice
islice(data,3,None,4)Run Code Online (Sandbox Code Playgroud)
这里None语义上用作停止索引.由于我们不想停在某个指数,我们使用None.这将产生:
>>> list(islice(data,3,None,4))
[105, 777, 1449, 2121, 2793]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
57 次 |
| 最近记录: |