我在使用包含一些重复ID的csv数据源时遇到了一些麻烦.然而,最终结果应该只有ID一次.因此,我们决定只采用我们看到的第一个实例并忽略任何其他实例.
目前我的代码是这样的:
id_list = list()
for item in datasource:
if item[0] not in id_list:
#process
id_list.append(item[0])
Run Code Online (Sandbox Code Playgroud)
问题是当列表增长时,性能会下降.我想知道是否有更有效的方法来跟踪已处理的ID?
使用set对象,保证集不具有重复项并提供快速成员资格测试.你可以set像这样使用
id_list = set()
for item in datasource:
if item[0] not in id_list:
# process
id_list.add(item[0])
Run Code Online (Sandbox Code Playgroud)
这将更好,因为set对象中的查找将在恒定时间内发生,而不是列表中的线性时间查找.
| 归档时间: |
|
| 查看次数: |
51 次 |
| 最近记录: |