我有一个要处理的有序列表,其中包括一些重复项,我只想处理第一次出现。目前,我在 Python v2.7 中这样做:
seen = set()
for (value, fmt) in formats:
if fmt not in seen:
seen.add(fmt)
process(value, fmt)
无论如何要同时插入一个新元素seen
并检测它是否已经存在?(这样可以避免在 . 中重复查找fmt
。set
)
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)