我有一个待处理的有序事项清单,其中包含一些重复项,我只想处理第一次出现的。目前,在Python v2.7中,我是这样做的:
seen = set()
for (value, fmt) in formats:
if fmt not in seen:
seen.add(fmt)
process(value, fmt)
有没有一种方法可以同时将新元素插入到
seen
中并检测它是否已经存在?(这将避免在set
中重复查找fmt
。)seen = set()
for (value, fmt) in formats:
# myInsert() would return true if item was not already present.
if seen.myInsert(fmt):
process(value, fmt)
或者,我可以在循环之前过滤我的
formats
以排除重复条目吗?unique_formats = removeDuplicates(formats, key=itemgetter(1))
for (value, fmt) in unique_formats:
process(value, fmt)
add()
真的是值得优化的整体性能瓶颈吗? - NPE